/// <summary> /// 回合开始,开始出怪 /// </summary> private IEnumerator RunRound() { _allRoundsComplete = false; for (int i = 0; i < _rounds.Count; i++) { //回合信息 StartRoundArgs startRoundArgs = new StartRoundArgs(); startRoundArgs.RoundIndex = i; startRoundArgs.RoundTotal = RoundTotal; SendEvent(Consts.E_StartRound, startRoundArgs); Round round = _rounds[i]; for (int j = 0; j < round.Count; j++) { //出怪信息 SpawnMonsterArgs spawnMonsterArgs = new SpawnMonsterArgs(); spawnMonsterArgs.MosterType = round.Monster; SendEvent(Consts.E_SpawnMonster, spawnMonsterArgs); yield return(new WaitForSeconds(Spawn_Interval)); } _roundIndex++; if (i < round.Count - 1) { yield return(new WaitForSeconds(Round_Interval)); } } _allRoundsComplete = true; }
IEnumerator RunRound() { for (int i = 0; i < m_Rounds.Length; i++) { //回合开始事件 StartRoundArgs e = new StartRoundArgs { RoundIndex = i, RoundTotal = RoundTotal }; SendEvent(Consts.E_StartRound, e); Round round = m_Rounds[i]; for (int j = 0; j < round.Count; j++) { //出怪间隙 yield return(new WaitForSeconds(SPAWN_INTERVAL)); //出怪事件 SpawnMonsterArgs ee = new SpawnMonsterArgs { MonsterType = round.Monster }; SendEvent(Consts.E_SpawnMonster, ee); } //回合间隙 yield return(new WaitForSeconds(ROUND_INTERVAL)); } //出怪流程 m_AllRoundsComplete = true; }
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)); //出怪事件 SpawnMonsterArgs ee = new SpawnMonsterArgs(); ee.MonsterType = round.Monster; SendEvent(Consts.E_SpawnMonster, ee); } //回合间隙 yield return(new WaitForSeconds(ROUND_INTERVAL)); } //出怪完成 m_AllRoundsComplete = true; }
IEnumerator RunRound() { m_RoundIndex = -1; m_AllRoundComplete = false; // m_AllRoundComplete = false; for (int i = 0; i < m_Rounds.Count; i++) { //设置回合 m_RoundIndex = i; //回合开始事件 StartRoundArgs e = new StartRoundArgs(); e.RoundIndex = m_RoundIndex; e.RoundTotal = RoundTotal; SendEvent(Consts.E_StartRound, e); Round round = m_Rounds[i]; for (int j = 0; j < round.Count; j++) { //出怪间隔 yield return(new WaitForSeconds(SPAWN_INTERVAL)); //出怪事件 SpawnMonsterArgs ee = new SpawnMonsterArgs() { MonsterID = round.Monster }; SendEvent(Consts.E_SpawnMonster, ee); //最后一波出怪完成 if ((i == m_Rounds.Count - 1) && (j == round.Count - 1)) { //出怪完成 m_AllRoundComplete = true; } } //回合数自加 //m_RoundIndex = m_RoundIndex + 1; //等待回合事件间隔 // if(i<m_Rounds.Count-1) if (!m_AllRoundComplete) { //回合间隙 yield return(new WaitForSeconds(ROUND_INTERVAL)); } } //回合结束事件 }
private void E_StartRound(object data) { roundModel = GetModel <RoundModel>(); MapModel mapModel = GetModel <MapModel>(); End = mapModel.end.transform; StartRoundArgs startRoundArgs = data as StartRoundArgs; int index = startRoundArgs.RoundIndex + 1; int MT = startRoundArgs.MonsterTotal; RoundX.GetComponent <Animator>().SetTrigger("Roundx"); RoundX.text = "Round " + index; RoundMessage.text = "Round:" + index + "/" + startRoundArgs.RoundTotal; CurrentRound.text = "NPC: /" + MT; TotalEnemy = MT; Enemy.text = TotalEnemy.ToString(); }
/// <summary> /// 协程:运行一个回合 /// </summary> /// <returns></returns> IEnumerator RunRound() { //回合开始 yield return(new WaitForSeconds(ROUND_INTERVAL)); StartRoundArgs e = new StartRoundArgs { RoundIndex = m_RoundIndex, RoundTotal = RoundTotal, MonsterTotal = m_Rounds[m_RoundIndex].TotalMonster }; Debug.Log("回合开始"); SendEvent(Consts.E_StartRound, e);//发送一个回合开始的事件 List <MonsterGroup> round = m_Rounds[m_RoundIndex].TheRound; SpawnMonsterArgs x = new SpawnMonsterArgs(); for (int k = 0; k < round.Count; k++) { MonsterGroup group = round[k]; SendEvent(Consts.E_SpawnMonsterGroups, group);//发送一个显示怪物群的消息 for (int j = 0; j < group.count; j++) { //出怪间隙 yield return(new WaitForSeconds(SPAWN_INTERVAL)); //出怪事件 x.MonsterID = group.monsterID; //Debug.Log("生成怪物"+ group.monsterID); if (x == null) { Debug.Log("x无效"); } else { SendEvent(Consts.E_SpawnMonster, x); //发送一个生成怪物的命令 } } } m_RoundIndex++; }
IEnumerator RunRound() { m_RoundIndex = -1; m_AllRoundsComplete = false; for (int i = 0; i < m_Rounds.Count; i++) { //设置回合 m_RoundIndex = i; //回合开始事件 StartRoundArgs e = new StartRoundArgs(); e.RoundIndex = m_RoundIndex; 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)); //出怪事件 SpawnMonsterArgs ee = new SpawnMonsterArgs(); ee.MonsterID = round.Monster; SendEvent(Consts.E_SpawnMonster, ee); //最后一波出怪完成 if ((i == m_Rounds.Count - 1) && (k == round.Count - 1)) { //出怪完成 m_AllRoundsComplete = true; } } if (!m_AllRoundsComplete) { //回合间隙 yield return(new WaitForSeconds(ROUND_INTERVAL)); } } }