2012年12月01日

Unity3D の基本から学ぶ09

 「はじめてのUnity」My First Unity 第1回 世界の「骨格」をつくろう

 つづきを勉強していきたいと思います。
 が、前々回で出てきた、ボールに初速を与えるスクリプトがよく分かっていないので、少し分析してみたいと思います。

<スクリプト>
#pragma strict

var Speed=20.0;
function Start () {
rigidbody.AddForce((transform.forward+transform.right)*Speed,ForceMode.VelocityChange);
}

<スクリプトの分析>
#pragma strict … ?
var Speed=20.0; … 変数宣言(Speedを20.0とする)
function Start(){ } … 最初に(フレームごとではなく)一回だけ呼び出されて{ }内を実行される関数
rigidbody.AddForce … 物体に与える力
transform.forward … Z軸方向(前方)の単位ベクトル
transform.right … X軸方向(右方)の単位ベクトル
 transform.up … y軸方向(上方)の単位ベクトル(???)
ForceMode.VelocityChange … 力のモードが「質量無視して速度変化を加える」
 ForceMode.Force:質量を考慮して継続的力を与える
 ForceMode.Acceleration:質量を無視して継続的力を与える
 ForceMode.Impulse:質量を考慮して衝撃力を与える

<備考>
 transform.forward,transform.rightと来れば反対のバックと左がありそうな感じがしますが、ないので負で表せばいいのだと思います。じゃ、3次元は?と思って調べてみましたら、transform.upというのがありました。これを使えばOKだと思ってやってみたら、何故か考慮されませんでした。理由は分かりません。

 何だか分かったような分からないような…ふらふら
 とにかく、ユーザーが立てたものはSpeedだけで、あとは全部予約語ということでしょうね。難しいなぁ…。
------------------
 <ご注意>私自身が全くの初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>


ラベル:Unity3d
posted by Shindo Izo at 11:33| Comment(0) | Unityのお勉強 | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。