コルーチン
参考:
目次
使い方
参考:
Unity のコルーチン機能を使ってみる | MR が楽しい
yield
yield return null
:次のフレームまで処理を中断するyield break
:コルーチンの実行を終了する
参考:
コルーチンで処理を中断・再開・停止させる方法を学ぶ | XR-Hub
WaitForSeconds
コルーチン内で処理を5秒間中断する。
yield return new WaitForSeconds(5.0f);
参考:
コルーチンで処理を中断・再開・停止させる方法を学ぶ | XR-Hub
コルーチン内から他のコルーチンを呼び出す
yield return
に StartCoroutine
の呼び出して与える。
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
エディタ拡張で使う
参考:
エディタ拡張で Unity を再生していない時でもコルーチンを使い非同期処理が行える EditorCoroutineUtility | kan のメモ帳
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 スクリプトリファレンス [公式]
ユーザーの入力を待つ (WaitForAction)
参考:
Making a coroutine wait for input from UI button – Unity Forum
Event Aggregator Message System
参考:
Event Aggregator Message System | Unity Asset Store [Official]
Unity Event Aggregator (Sov3rain)
参考:
Sov3rain/Unity-Event-Aggregator: Simple .net EventAggregator for Unity engine – GitHub
Prism
参考: