質問: IEnumerator Start()の使い方について教えて下さい。 Unityの場合、最初のスタート時のイベントはvoid Start()で開始します。 しかしネット検索を色々見ているとIEnumerator Start()という形をとっている場合が往々にあります。 コルーチン1(これは分かる) ``` StartCoroutine("hoge"); IEnumerator hoge() { yield return new WaitForSeconds (1.0f); //1秒後に実行するイベント } ``` コルーチン2(こちらが分からない) ``` IEnumerator Start() { } ``` IEnumerator自体はコルーチンとして上記1のような使い方をするのは基本なので 分かるのですがIEnumerator Start()という形をとる2の意味が分かりません。 ※こちらのQ&Aでも以前同じような質問をした方が見えましたが 「IEnumeratorはコルーチンです」という回答で収束しておりました。 ネットを半日ほど検索したのですが回答らしい部分に行きつかず 質問させていただくことにしました。 質問はIEnumerator Start()を 「使うメリット」と「どういった時に使うのか」(具体的な例があると嬉しいです)を 教えて下さい。 環境) PC: mac Unity2018.2 言語:C#
回答: Start内で非同期処理の結果待ちをしたいときなどに使います. 以下の例ではStart内でnew WWW(url)を行っていますが,これは非同期処理なのでコルーチンにしないとダウンロード完了前にwwwにアクセスすることになりエラーになります.