UnityのAddForce関数でボールを遠くに飛ばす

UnityのAddForce関数でボールを遠くに飛ばす

Unityは、物理計算のプログラムを1から作らなくても便利な関数が最初から利用できます。
わたしの好きなUnityの関数は、AddForce関数です。
AddForce関数は、引数に方向を指定するとUnity上のオブジェクトに力を加えることができます。

こんな感じ。

方向は、Vectorというクラスを使って表現します。
Vectorの引数はそれぞれx方向、y方向、z方向の力を表します。

先ほどの動画だと高さがy方向で、奥行きがx方向の設定にしています。
例えば次のようにするとx軸とy軸、前方45度に力を加えたことになります。(20.0fは強さなので適当です)

Vector3 force = new Vector3(20.0f, 20.0f, 0.0f);

今回ボールオブジェクトには、次のようなC#スクリプトをアタッチ(プログラムをオブジェクトに設定すること)しました。

void Start () {
	Rigidbody rb = GetComponent<Rigidbody>();
	Vector3 force = new Vector3(20.0f, 20.0f, 0.0f);
	rb.AddForce(force, ForceMode.Impulse);
}

Startメソッドに指定しているため、ボールに対して1回ガツーンと前方に力を加えたイメージです。
だからゴルフボールのように飛んでいきました。

この3行足らずのプログラムだけでこのような動作が出来るのは、凄いなあと思ってしまいます。
まあ、だからと言って面白いゲームが作れるかは別問題ですが…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です