Unity5学習の際の覚え書き。

×

コルーチンとは

処理1 -> 一定時間待つ -> 処理2 -> 一定時間待つ -> 処理3
のような一連の処理を、1つの関数でまとめて書くことができる。

コルーチンの書き方

コルーチンは、IEnumeratorを返す関数として実装する。
そして、StartCoroutineメソッドで実行する。
StartCorutineの引数には、実行したいコルーチンの関数名を指定する。

public class Test : MonoBehaviour {
    void Start () {
        // コルーチンを実行
        StartCoroutine ("Sample");
    }
 
    // コルーチン
    private IEnumerator Sample() {
        // コルーチンの処理
    }
}

public class Spawner : MonoBehaviour {

	public GameObject wallPrefab; // Unityでプレハブを設定
	public float interval; // Unityで間隔をfloat値で設定

	IEnumerator Start () {
		while (true) {
			Instantiate (wallPrefab, transform.position, transform.rotation);
			yield return new WaitForSeconds (interval);
		}
	}
	
	void Update () {
	}
}

一定時間中断、処理の再開

yield return new WaitForSeconds ( 秒数float );

コルーチンの途中で中断して次のフレームで再開

yield return null;

コルーチンの途中で終了

yield break;

引数のあるコルーチンを実行 (引数が1つだけ)

StartCoroutine ("コルーチン名", 引数に渡す値);

ただしこの方法で渡せる引数は1つだけ。

void Start () {
    // コルーチンに引数に5を渡して実行
    StartCoroutine ("Sample", 5);
}
 
private IEnumerator Sample(int num) {
    for (int i = 0; i < num; i++) {
        Debug.Log ("i:" + i);
        yield return new WaitForSeconds (1f);
    }
}

参考: http://wonderpla.net/blog/engineer/Unity_Co-routin...

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

【メニュー編集】
Wiki記法ガイド

リンク

ゲームバー大阪心斎橋

ゲームバー大阪梅田

ゲームバー大阪心斎橋

ダーツ&ダイニングバー大阪梅田

メニュー

Unity


スマホ操作

Unity - GameObject

Unity - 3DCG

メンバーのみ編集できます