2016年11月27日日曜日

Unityのコルーチンについて

コルーチンとは? 自分は複数の処理をほぼ同時に処理してくれます。
ただスレッドはメインスレッドしか動いていないらしいため、疑似的な非同期になるでしょうか。
C#のasync/awaitは複数スレッドを使用しているみたいです。
以下のコードは1秒後にTest1のログを表示するプログラムです。

void Update() {
    // aキーを押したとき
    if (Input.GetKeyDown("a")) {
        // Test()のコルーチンを実行する
        StartCoroutine(Test1());
    }
}

 IEnumerator Test1()
    {
    // 1秒待機する
        yield return new WaitForSeconds(1.0f);

        Debug.Log("Test1");
    }
自分はアニメーションが終了する時まで待機するために使っていたりします。 便利です。


アプリ開発はもう少しできてきたら動画とろうと思います。
steamがセール中なので何か買わなくては


0 件のコメント :

コメントを投稿

【早い者勝ち!】 あなたのお名前、残ってる?

シャドウバースにPC版が誕生