//连续攻击处理方式:当前攻击快要完成时,按下攻击键 public void DoAttack(int skillID) { //连击处理 if (mySkill != null && skillID == mySkill.skillID) { //已有技能在释放中 EmPlaySKillResult rt = mySkill.PlaySKill(timer, statusDuration, curAttribute.attackSpeed); if (rt == EmPlaySKillResult.WaitToCombo) { isReadyToCombo = true; nextAttackDir = 0; //三段斩要立即记录按键的方向,切换攻击时立即应用 if (mySkill.skillID == (int)EmSkillIDSet.TripleSlash) { if (actorController.curPressKey == KeyCode.RightArrow || actorController.curPressKey == KeyCode.LeftArrow) { nextAttackDir = actorController.curPressKey == KeyCode.RightArrow ? 1 : -1; } } return; } else if (rt == EmPlaySKillResult.None) { return; } //else if(rt == EmPlaySKillResult.PlayNext) //{ // //进行后续处理即可 //} } else { //没有技能在释放中 SkillState state = skillStateManager.GetSkillState(skillID); if (!state.isCding) { mySkill = SkillManager.GetSkill(this, skillID); state.StartCd(); } else { audioSource.clip = ResourceLoader.LoadCharactorSound("effect/zieg_stab_02"); audioSource.Play(); Debug.Log("Skill is cding, remain + " + state.curCd + "s"); } if (mySkill == null) { return; } } if (nextAttackDir != 0) { objectbase.isFacingRight = nextAttackDir == 1; nextAttackDir = 0; } if (mySkill.curAttackConf.castTime > 0) { ChangeStatus(EmActorStatus.CastAttackChargeStart); } else { ChangeStatus(EmActorStatus.DoAttack); } }