예제 #1
0
    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));
            }
        }
    }
예제 #2
0
 public void EnemyBorn(EnemyBornMsg bornMsg, int bornPathID)
 {
     StartCoroutine(EnemyBornCorotine(bornMsg, bornPathID));
 }