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