親子関係を作っていて、Collider2Dは子だけが持っていて、
DestroyAreaから離れた時に子だけがDestroyされて親が残っているみたいな状況ではないですか?
emitterから敵を作成しているのですがDestroyAreaに行った敵が画面上では消えるがヒエラルキーに残るため次のwaveが作成されない
なぜ残るのかわからないです
unity
1 2public class Emitter : MonoBehaviour 3{ 4 // Waveプレハブを格納する 5 public GameObject[] waves; 6 7 // 現在のWave 8 private int currentWave; 9 10 // Managerコンポーネント 11 private Manager manager; 12 13 IEnumerator Start() 14 { 15 // Waveが存在しなければコルーチンを終了する 16 if (waves.Length == 0) 17 { 18 yield break; 19 } 20 21 // Managerコンポーネントをシーン内から探して取得する 22 manager = FindObjectOfType<Manager>(); 23 24 while (true) 25 { 26 27 // タイトル表示中は待機 28 while (manager.IsPlaying() == false) 29 { 30 yield return new WaitForEndOfFrame(); 31 } 32 33 // Waveを作成する 34 GameObject g = (GameObject)Instantiate(waves[currentWave], transform.position, Quaternion.identity); 35 36 // WaveをEmitterの子要素にする 37 g.transform.parent = transform; 38 39 // Waveの子要素のEnemyが全て削除されるまで待機する 40 while (g.transform.childCount != 0 ) 41 { 42 yield return new WaitForEndOfFrame(); 43 } 44 45 // Waveの削除 46 Destroy(g); 47 48 // 格納されているWaveを全て実行したらcurrentWaveを0にする(最初から -> ループ) 49 if (waves.Length <= ++currentWave) 50 { 51 currentWave = 0; 52 } 53 54 55 } 56 } 57} 58
unity
1public class DestroyArea : MonoBehaviour 2{ 3 // Start is called before the first frame update 4 void Start() 5 { 6 7 } 8 9 // Update is called once per frame 10 void Update() 11 { 12 13 } 14 15 16 void OnTriggerExit2D(Collider2D c) 17 { 18 Destroy(c.gameObject); 19 } 20 21} 22
あなたの回答
tips
プレビュー