往復運動する際に、A地点で数秒間停止した後に移動、そしてまたB地点で停止といった動作をくり返します。
今回の例では、Cubeが前方向へ移動して1秒間ストップ、後ろ方向へ動いてまた1秒間ストップをずっとくり返しています。
関連記事:
ぶつかるとn秒間スピードアップ
Updateの中でn秒おきにずっと実行する
Updateを使わずにn秒おきにずっと実行する
1秒おきにランダムで回転角を変える
1秒おきにランダムでボールを落とす
2点間の往復運動をくり返す
移動先で1秒間停止する往復運動
Cubeを1個作成します。
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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { int counter = 0; float move = 0.05f; void Start() { StartCoroutine("CubeStart"); } IEnumerator CubeStart() { while (true) { Vector3 p = new Vector3(0, 0, move); transform.Translate(p); yield return new WaitForSeconds(0.01f); counter++; if (counter == 100) { counter = 0; move *= -1; yield return new WaitForSeconds(1.0f); } } } } |
ゲームプレイしてみましょう。
進むたびにcounterを1ずつ増やし、100になれば1秒間停止。
moveにマイナスを掛けて、逆方向に移動します。
関連記事:
ぶつかるとn秒間スピードアップ
Updateの中でn秒おきにずっと実行する
Updateを使わずにn秒おきにずっと実行する
1秒おきにランダムで回転角を変える
1秒おきにランダムでボールを落とす
2点間の往復運動をくり返す