コルーチン

参考:

コルーチン | Unity マニュアル [公式]

使い方

参考:

Unity におけるコルーチンの性質まとめ – Qiita

Unity のコルーチン機能を使ってみる | MR が楽しい

yield

  • yield return null:次のフレームまで処理を中断する
  • yield break:コルーチンの実行を終了する

参考:

コルーチンで処理を中断・再開・停止させる方法を学ぶ | XR-Hub

コルーチンの中断処理 | まみももめも

コルーチンの中断・終了の仕方いろいろ – Qiita

WaitForSeconds

コルーチン内で処理を5秒間中断する。

yield return new WaitForSeconds(5.0f);

参考:

コルーチンで処理を中断・再開・停止させる方法を学ぶ | XR-Hub

コルーチン内から他のコルーチンを呼び出す

yield returnStartCoroutine の呼び出して与える。

yield return StartCoroutine("AnotherCoroutine");

参考:

コルーチンで処理を中断・再開・停止させる方法を学ぶ | XR-Hub

キー入力を待つ

参考:

コルーチン内で入力待ちする | トーフメモ

How to make unity wait until i press i key – Stack Overflow

キーを押している間のみ処理を実行する

参考:

Start a Coroutine on Key Press (and keep it running) – Unity Answers

Update からコルーチンを開始する

処理が実行中の場合にコルーチンが二重に生成されないようにガードを追加する。

private bool isRunning = false;

IEnumerator DoSomething()
{
    if (isRunning)
        yield break;
    isRunning = true;

    while (/* condition */)
    {
        // Do something
        yield return null;
    }

    // End of running
    isRunning = false;
}

参考:

Update() 内で StartCoroutine() を使うときの注意 – Qiita

StartCoroutine

参考:

MonoBehaviour.StartCoroutine | Unity Scripting API [Official]

StopCoroutine / StopAllCoroutines

参考:

MonoBehaviour.StopCoroutine | Unity Scripting API [Official]

MonoBehaviour.StopAllCoroutines | Unity Scripting API [Official]

WaitUntil

条件が満たされるまで処理を中断する。条件が満たされていた場合、次のフレームで続きの処理を実行する。

参考:

UnityEngine.WaitUntil | Unity スクリプトリファレンス [公式]

WaitWhile

条件が満たされている間、処理を中断し続ける。最初から条件が満たされていなかった場合はそのフレーム内で続きの処理を実行する。

参考:

UnityEngine.WaitWhile | Unity スクリプトリファレンス [公式]

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です