//释放技能 public void CastAbil(Abil abil) { //如果已经在行动中,设置预输入指令 if (acting) { nextAbil = abil; return; } //如果不能在空中释放 if (!unit.rb.isOnGround && !abil.canCastInTheAir) { return; } //前摇 unit.StopMoving(); //释放效果 if (abil.castEffect != null) { abil.castEffect.Trigger(unit); } areaEffect = abil.areaEffect; //播放动画,根据时长 unit.actor.PlayAnim(abil.anim, abil.preswingTime, abil.swingTime, abil.backswingTime); StartCoroutine(CastAbilCor(abil)); }
IEnumerator CastAbilCor(Abil abil) { acting = true; yield return(new WaitForSeconds(abil.preswingTime)); //释放 yield return(new WaitForSeconds(abil.swingTime)); yield return(new WaitForSeconds(abil.backswingTime)); //后摇 acting = false; //如果有预输入指令,执行指令 if (nextAbil != null) { CastAbil(nextAbil); nextAbil = null; } }
public void CastAbil(Abil abil) { abilController.CastAbil(abil); }