如何制作动画,即使放手也不能中断?

时间:2015-05-25 16:38:44

标签: c# animation unity3d

基本上我希望滚动动画完全播放,而不是像格斗游戏特别动作那样被打断。因此,当我按下或按住这种情况时,动画必须完成一个循环,然后我必须再次按住或按住向下键才能再次启动。任何帮助都会很棒。

    const int STATE_Idle = 0;
    const int STATE_Run = 1;
    const int STATE_Roll = 2;
    const int STATE_Jump = 3;



if (Input.GetKey ("down") 
        {

            changeState(STATE_Roll);
            transform.Translate(new Vector3(1f, -.4f, 0f) * rollSpeed * Time.deltaTime);

        }

        if (animator.GetCurrentAnimatorStateInfo(0).IsName("roll"))
            _isPlaying_roll = true;
        else
            _isPlaying_roll = false;

    }

    //--------------------------------------
    // Change the players animation state
    //--------------------------------------
    void changeState(int state){

        if (_currentAnimationState == state)
            return;

        switch (state) {

        case STATE_Run:
            animator.SetInteger ("state", STATE_Run);
            break;

        case STATE_Roll:
            animator.SetInteger ("state", STATE_Roll);
            break;

        case STATE_Jump:
            animator.SetInteger ("state", STATE_Jump);
            break;

        case STATE_Idle:
            animator.SetInteger ("state", STATE_Idle);
            break;

        }

        _currentAnimationState = state;
    }

1 个答案:

答案 0 :(得分:0)

如何将动画条放在列表中。每次想要运行动画时,请检查不是您想要的任何其他用户输入。如果它是您想要的输入,则遍历整个列表,然后继续执行下一步。

这样的事情:

{{1}}