IEnumerator CreateEnemy(SpwanPointEnemy point, E_EnemyType enemyType = E_EnemyType.None, RoundInfo.SpawnInfo spawnInfo = null) { if (enemyType == E_EnemyType.None) { enemyType = point.EnemyType; } //从缓存获取怪物 //GameObject prefab = Resources.Load<GameObject> ("Prefabs/Monster"); //Agent enemy = GameObject.Instantiate (prefab).GetComponent<Agent> (); Agent enemy = MissionZone.Instance.GetHuman(enemyType, point.transform); while (enemy == null) { yield return(new WaitForSeconds(0.5f)); enemy = MissionZone.Instance.GetHuman(enemyType, point.transform); } enemy.PrepareForStart(); CombatEffectsManager.Instance.PlaySpawnEffect(point.Transform.position, point.Transform.forward); MyGameZone.AddEnemy(enemy); EnemiesAlive.Add(enemy); if (spawnInfo != null && spawnInfo.WhenKilledStopSpawn) { ImportantAgent = enemy; } yield return(new WaitForSeconds(0.1f)); }
IEnumerator SpawnEnemy(SpawnPointEnemy spawnpoint) { CombatEffectsManager.Instance.PlaySpawnEffect(spawnpoint.Transform.position, spawnpoint.Transform.forward); yield return(new WaitForSeconds(0.1f)); GameObject enemy = Mission.Instance.GetHuman(spawnpoint.EnemyType, spawnpoint.Transform); Agent agent = enemy.GetComponent("Agent") as Agent; agent.PrepareForStart(); if (spawnpoint.SpawnAnimation != null) { agent.PlayAnim(spawnpoint.SpawnAnimation.name); } MyGameZone.AddEnemy(agent); EnemiesAlive.Add(agent); }