IEnumerator CreateMonster() { if (waveQueue.Count <= 0) { yield break; } WaveInformation waveInformation = waveQueue.Dequeue(); //每一波生成前的等待时间 yield return(new WaitForSeconds(waveInformation.time)); //每一个怪物列表 foreach (var monsterList in waveInformation.monsterLists) { for (int j = 0; j < monsterList.count; ++j) { //生成怪物 var monster = Instantiate(monsterPrefabs[monsterList.monsterID - 1], spawnPoint.position, Quaternion.identity, Monsters); //设置路径 monster.GetComponent <BehaviorTree>().SetVariableValue("Road", wayPointManager.GetRoad(monsterList.wayID - 1)); //生成间隔 float rate = monsterList.rate; yield return(new WaitForSeconds(rate)); } } alreadySpawnOneWave = true; }