数秒おきに、くり返し実行するプログラムを作りましょう。
今回は、Update()を使用せずに、while(true)を使った無限ループで、ずっと実行できるようにします。
前方に移動した後、1秒間だけ停止して、また逆方向へ。
この処理が、ずっとループし続けます。
関連記事:
n秒おきに発射をくり返す
Updateの中でn秒おきにずっと実行する
ボタン長押しでn秒おきに発射
マテリアルを使って点滅させる
配列のオブジェクトをn秒おきにすべて出現
マウス長押しで降下させて離せば引き上げる
テキストを点滅させる
1秒経てば0.5秒おきに実行する
while(true)で一定間隔の実行
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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { void Start() { StartCoroutine("CubeStart"); } IEnumerator CubeStart() { while (true) { for (int i=0; i<100; i++) { yield return new WaitForSeconds(0.01f); transform.Translate(0, 0, 0.1f); } yield return new WaitForSeconds(1.0f); for (int k=0; k<100; k++) { yield return new WaitForSeconds(0.01f); transform.Translate(0, 0, -0.1f); } yield return new WaitForSeconds(1.0f); } } } |
ゲームプレイしましょう。
コルーチンの中では、While(true)を使って、無限ループを実行します。
前に進んで1秒間だけストップ、後ろに下がってまた1秒ストップ。
往復運動をくり返す中で、一旦停止をはさむことができます。
関連記事:
n秒おきに発射をくり返す
Updateの中でn秒おきにずっと実行する
ボタン長押しでn秒おきに発射
マテリアルを使って点滅させる
配列のオブジェクトをn秒おきにすべて出現
マウス長押しで降下させて離せば引き上げる
テキストを点滅させる
1秒経てば0.5秒おきに実行する