コルーチンの使い方

コルーチン本体
IEnumerator Coroutine(){
}

コルーチンを実行
StartCoroutine (呼び出すコルーチン名());

引数があるコルーチンを実行
StartCoroutine (呼び出すコルーチン名(int x));

他のスクリプトのコルーチンを実行する
StartCoroutine (GameObject.Find("オブジェクト 名").GetComponent<スクリプト名>().呼び出すコルーチン名());
例:GameオブジェクトのActionスクリプトのpublic IEnumerator Move(){}を動かす
StartCoroutine(GameObject.Find("Game").GetComponent<Action>().Move());

コルーチンを終了
StopCoroutine (呼び出すコルーチン名());
この命令はコルーチン外でも実行できる
ただし 引数が2つ以上のコルーチンは これで終了できない

コルーチンの途中で一定時間中断
yield return new WaitForSeconds (float x);
float x に止める秒数を入れる

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

コルーチンの途中で終了
yield break;

コルーチンの中で別のコルーチンを実行
yield return StartCoroutine (呼び出すコルーチン名());
コルーチン内で実行したコルーチンが終了するまで
呼び出し元のコルーチンの処理は中断する

コルーチンの一時停止
    IEnumerator coroutine;

    void Start()
    {
        // IEnumeratorを取得する
        coroutine = Coroutine();
    }

    public void CoroutineStart()
    {
        // コルーチンをIEnumeratorの位置から開始(再開)
        StartCoroutine(coroutine);
    }

    public void CoroutineStop()
    {
        // コルーチンを停止
        StopCoroutine(coroutine);
    }

    IEnumerator Coroutine()
    {
        for(int i = 0; i < 9999; i++)
        {
            Debug.Log("" + i);
            yield return null;
        }
    }
これでコルーチンの一時停止と再開ができるようになります

戻る