Пример #1
0
    //释放技能
    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));
    }
Пример #2
0
    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;
        }
    }
Пример #3
0
 public void CastAbil(Abil abil)
 {
     abilController.CastAbil(abil);
 }