2
非同期操作/コルーチンを待つ方法は?
Unity 5でコルーチンと非同期操作が完了するのを待つ一般的で再利用可能な方法を探しています。C#5のawaitキーワードと同様です。 私が考えることができる最も簡単な方法は次のようなものです: public class SomeUtility { public bool IsDoingSomething { get; private set; } public IEnumerator DoSomethingAsync() { IsDoingSomething = true; yield return new WaitForSeconds(2); IsDoingSomething = false; } } そして別のコルーチンで: while(!someUtilityInstance.IsDoingSomething) yield return null; ただし、whileステートメントでコードが乱雑になり、再利用できず(単純なユーティリティ関数でもインスタンスと専用クラスが必要です!)、必要のない場所にシングルトンまたは静的なものがたくさんあるため、これはあまり良くありません。 私が見つけた最も近いものはUnityを使用していAsyncOperationます。これは非常にうまく機能します: public static IEnumerator Await(this AsyncOperation operation) { while(!operation.isDone) yield return operation; } …