public IEnumerator EnemyBornCorotine(EnemyBornMsg bornMsg, int bornPathID) { yield return(new WaitForSeconds(bornMsg.waitTime)); // StartCoroutine(EachEnemyWave(bornMsg, bornPoint.pointId, bornPoint.pathId)); if (bornMsg.enemys.Count < 1) { yield break; } if (bornMsg.enemys.Count == 1) { GameObject enemy = AssestManager.Instance.LoadEnemy(bornMsg.enemys[0].type); BaseEnemy baseEnemy = enemy.GetComponent <BaseEnemy>(); baseEnemy.PathID = bornPathID; for (int i = 0; i < bornMsg.enemys[0].num; i++) { InstantiateEnemy(bornMsg.enemys[0].type, bornPathID); Debug.Log($"1 intervalTime {bornMsg.intervalTime}"); yield return(new WaitForSeconds(bornMsg.intervalTime)); } } else { for (int i = 0; i < bornMsg.enemys.Count; i++) { EnemyDetail enemy = bornMsg.enemys[i]; StartCoroutine(YieldInstantiateEnemy(enemy.type, enemy.num, bornPathID)); Debug.Log($"2 intervalTime {bornMsg.intervalTime}"); yield return(new WaitForSeconds(bornMsg.intervalTime)); } } }
public void EnemyBorn(EnemyBornMsg bornMsg, int bornPathID) { StartCoroutine(EnemyBornCorotine(bornMsg, bornPathID)); }