オブジェクトを移動させ、3秒おきに加速スピードを上げるプログラムを作りましょう。
キューブが往復移動を続け、3秒経過するたびに、速度と移動量が上がります。
関連記事:
ぶつかるとn秒間スピードアップ
変数を割った余りで動きをつける
割った余り(%)を使用する
Cubeを作成します。
CubeMove.csを作成して、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { int counter = 0; float move = 0.02f; public float time; public float accel; void Start() { accel = 0; } void Update() { Vector3 position = new Vector3(move * accel, 0, 0); transform.Translate(position); counter++; if (counter == 50) { counter = 0; transform.Rotate(new Vector3(0, 180, 0)); } time += Time.deltaTime ; if (Mathf.Floor(time) % 3 == 0) { accel+= 0.02f; } } } |
ゲームプレイしてみましょう。
deltaTimeの値を、Mathf.Floorで整数に変換。
その整数を3で割った余りが0のときに、accelを増やしています
3で割った余りが0というと、3、6、9、12・・・となり、3秒おきに実行されることになります。