// 接上 再开启协程 _playStep IEnumerator _step() { if (m_battleData.data.stepData != null && m_battleData.data.stepData.Length > 0) { Data_MapBattle_R.StepData[] datas = m_battleData.data.stepData; int iCount = datas.Length; for (int i = 0; i < iCount; i++) { Data_MapBattle_R.StepData stepdata = datas[i]; yield return(StartCoroutine("_playStep", stepdata)); } yield return(new WaitForSeconds(0.5f)); end(); // end 调用结束 } }
// 主角攻击 速度10 + 10帧? IEnumerator _playStep(Data_MapBattle_R.StepData stepdata) { BattlePlayer battler = m_players[stepdata.chaBattleId]; if (stepdata.skill == 61010) // 技能1 { Animation attackAnim = battler.gameObject.GetComponent <Animation>(); ActiveAnimation.Play(attackAnim, "attack", AnimationOrTween.Direction.Forward); int iFrameCount = playSkillEffect(battler.transform, 61010); // yield return(new WaitForSeconds(Time.deltaTime * iFrameCount)); Data_MapBattle_R.StepData_Enemy[] enemys = stepdata.enemyChaArr; BattlePlayer enemy = null; for (int i = 0; i < enemys.Length; i++) // 敌人受伤 { enemy = m_players[enemys[i].enemyBattleId]; enemy.ChangeHP(enemys[i].enemyChangeHp); iFrameCount = playSkillEffect(enemy.transform, 61011); // } yield return(new WaitForSeconds(Time.deltaTime * iFrameCount)); } else // 其他技能 { SkillJson skill = Globals.It.SkillJsonMgr.GetSkill(stepdata.skill); int iFrameCount = playSkillEffect(battler.transform, skill.releaseEffect); // yield return(new WaitForSeconds(Time.deltaTime * iFrameCount)); Data_MapBattle_R.StepData_Enemy[] enemys = stepdata.enemyChaArr; BattlePlayer enemy = null; int iTempCount = 0; iFrameCount = 0; for (int i = 0; i < enemys.Length; i++) { enemy = m_players[enemys[i].enemyBattleId]; enemy.ChangeHP(enemys[i].enemyChangeHp); iTempCount = playSkillEffect(enemy.transform, skill.effect); // if (iTempCount > iFrameCount) { iFrameCount = iTempCount; } } yield return(new WaitForSeconds(Time.deltaTime * iFrameCount)); } }