Unity公式の「はじめてのUnity」というチュートリアルのシューティングゲームを作成中です。
コルーチンが終了しない理由がわかりません。
###該当のソースコード
c#
1using UnityEngine; 2using System.Collections; 3 4public class Emitter : MonoBehaviour 5{ 6 // Waveプレハブを格納する 7 public GameObject[] waves; 8 9 // 現在のWave 10 private int currentWave; 11 12 IEnumerator Start () 13 { 14 15 // Waveが存在しなければコルーチンを終了する 16 if (waves.Length == 0) { 17 yield break; 18 } 19 20 while (true) { 21 22 // Waveを作成する 23 GameObject wave = (GameObject)Instantiate (waves [currentWave], transform.position, Quaternion.identity); 24 25 // WaveをEmitterの子要素にする 26 wave.transform.parent = transform; 27 28 // Waveの子要素のEnemyが全て削除されるまで待機する 29 while (wave.transform.childCount != 0) { 30 yield return new WaitForEndOfFrame (); 31 } 32 33 // Waveの削除 34 Destroy (wave); 35 36 // 格納されているWaveを全て実行したらcurrentWaveを0にする(最初から -> ループ) 37 if (waves.Length <= ++currentWave) { 38 currentWave = 0; 39 } 40 41 } 42 } 43}
###発生している問題
上記のコードで、コルーチンがスタートしてからすぐにif文の処理が行われないのはなぜでしょうか。
###URL
リンク内容
回答2件
あなたの回答
tips
プレビュー