我如何让动画完成,即使我放手也不会被打断

本文关键字:放手 动画 | 更新日期: 2023-09-27 17:50:45

基本上,我希望滚动动画完整地播放,而不是像战斗游戏的特殊动作那样被打断。所以当我按下或按住时,在这个例子中,动画必须完成一个循环,然后我必须再次按下或按住按下键才能再次启动。如果你能帮我,那就太好了。

    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;
    }

我如何让动画完成,即使我放手也不会被打断

你把你的动画条放在一个列表上怎么样?每次您想要运行动画时,检查是否有其他不是您想要的用户输入。如果它是你想要的输入,遍历整个列表,然后继续执行下一步的操作。

像这样:

foreach(var strip in animationStrips)
{
    //Display current strip
}