前回に引き続き、Unity に追加した「桜の花びら」画像をプログラムで動かします。
下方向に移動させることはできましたが、もう少し早く移動しても良いかなと思いました。
そこで、移動速度をプログラムに追加してみます。
※プログラムは「桜の花びら」を表示するゲームオブジェクトに紐づいています。
※ Unity は 2021.3.14f1、 OS は Windows 10 です。
public class SakuraNoHanabira : MonoBehaviour { /// /// 移動速度(秒速)です。 /// float Speed = 2.5f; // 省略 }
Speed は変数名です。この変数は float 型で小数を保持します。
Unity のデフォルトの距離の単位はメートルなので、 Speed の既定値では 1 秒で 2.5 m 進むことを意味します。
毎フレーム呼ばれる Update イベント関数の移動量の式に Speed (移動速度)を追加します。
// Update is called once per frame void Update() { // 自身の位置情報を tmp にコピーします。 Vector3 tmp = this.transform.position; // tmp の位置情報を、経過時間と移動速度に応じて下方向に変化させます。 tmp += Vector3.down * Time.deltaTime * this.Speed; // 自身の位置情報を tmp の位置情報に変更します。 this.transform.position = tmp; }
プログラムを保存し Unity エディタに戻り、再生ボタンでテストプレイしてみます。
桜の花びらが前回の2.5倍の速度で下方向に移動しました。
もっと速く動かしたければ Speed 変数の値を 2.5 よりも大きくしましょう。
プログラムの 2.5 を変更しても良いですが、 Unity エディタで変更できると便利です。
そのために Speed 変数に public を付け加えます。
public float Speed = 2.5f;
public と付け加えることで外部からアクセスが可能になります。
※厳密には C# の説明をご覧ください。
Unity では、float などの一部の型の public 変数を、[Inspector] ウィンドウのプログラムと対応するコンポーネントの表示欄で変更できるようになります。
この場合、 Speed の値を編集できる項目が追加されました。
これにより、更に値の調整が楽になりました。
例えば Speed の値を 10 に変更・保存してテストプレイすると更に速く移動します。
※ Unity エディタ上で値を変更しても、プログラムの Speed = 2.5 という既定値は変更されません。
コメント