WaitUntilやWaitWhileはインスタンスを作成する
コルーチン内のyield returnでnew WaitUntileやWaitWhileは、新しいインスタンスを作成してメモリアロケーションが発生するので、何回もコルーチンを呼び出す場合はあんまりよろしくない。
代わりにyield return nullはメモリアロケーションが発生しないのでこちらに代用できると最適化できる。
コーディングの例
メモリアロケーションが発生するコード
IEnumerator yWaitTask() { // isCompletedがtrueになるまで待つ yield return new WaitUntil(() => isCompleted == true); }
最適化バージョン
IEnumerator yWaitTask2() { while(isCompleted == false) { yield return null; } }