毎フレーム動かす
CoddyのUnityジャーニー「Unityスクリプトの基礎」セクションの一部。レッスン 10/85。
Unityは描画するフレームごとにUpdate()を1回呼び出します。その中で位置を少し変えると、オブジェクトはフレームごとに少しずつ移動し、画面上では滑らかな動きに見えます。
位置に対する+=は、そこにVector3を加算します。x、y、zのそれぞれが対応する数だけ増加します。この風船はフレームごとに0.02単位上昇し、xとzの位置は変わりません。
void Update()
{
transform.position += new Vector3(0, 0.02f, 0);
}fはすでに知っているC#のfloatサフィックスです。Unityではfloatを使い、0.02だけだとdoubleになります。1秒あたり60フレームの場合、風船は毎秒0.02 x 60 = 1.2単位上昇します。
チャレンジ
簡単赤い車を前進させましょう。
Update()で、+=を使ってnew Vector3(0, 0, 0.05f)をtransform.positionに加えます。- xとyは
0のままにします。車はz方向にのみ移動します。
「プレイ」を押すと、車はカメラから遠ざかります。その後、「確認」を押します。
自分で試してみよう
using UnityEngine;
public class CarMover : MonoBehaviour
{
void Update()
{
// ここで車をz軸に沿って前進させる
}
}
Unityスクリプトの基礎のすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド