public override void HandleEvent(string eventName, object data) { switch (eventName) { case Consts.E_EnterScene: SceneArgs e0 = data as SceneArgs; if (e0.SceneIndex == 3) { //获取数据 GameModel gModel = GetModel <GameModel>(); //加载地图 m_Map = GetComponent <Map>(); m_Map.LoadLevel(gModel.PlayLevel); m_Map.OnTileClick += map_OnTileClick; //HU //加载萝卜 Vector3[] path = m_Map.Path; Vector3 pos = path [path.Length - 2]; int Herotype = int.Parse(gModel.PlayLevel.Name); SpawnHero(Herotype, pos); pos.y += 0.5f; gModel.des = pos; //HU } break; case Consts.E_SpawnEnemy: SpawnEnemyArgs e1 = data as SpawnEnemyArgs; SpawnEnemy(e1.EnemyType); break; case Consts.E_SpawnTower: SpawnTowerArgs e2 = data as SpawnTowerArgs; SpawnTower(e2.Position, e2.TowerID); break; } }
IEnumerator RunRound() { for (int i = 0; i < m_Rounds.Count; i++) { //回合开始事件 StartRoundArgs e = new StartRoundArgs(); e.RoundIndex = i; e.RoundTotal = RoundTotal; SendEvent(Consts.E_StartRound, e); Round round = m_Rounds[i]; for (int k = 0; k < round.Count; k++) { //出怪间隙 yield return(new WaitForSeconds(SPAWN_INTERVAL)); //出怪事件 SpawnEnemyArgs ee = new SpawnEnemyArgs(); ee.EnemyType = round.Enemy; SendEvent(Consts.E_SpawnEnemy, ee); } //HU //回合数自加 m_RoundIndex++; //yield return new WaitForSeconds (ROUND_INTERVAL); //回合间隙 if (i < m_Rounds.Count - 1) { yield return(new WaitForSeconds(ROUND_INTERVAL)); } //HU } //出怪完成 m_AllRoundsComplete = true; }
private void SpawnEnemy(object sender, SpawnEnemyArgs e) => Enemies.Add(e.Enemy);