不再按下按钮时动画继续运行

整数值仍然是 1,动画继续运行。我不知道怎么了。


动画师:


AnyState -> Jump(条件:“Jumping”等于 1)


跳跃 -> 过渡(条件:“跳跃”等于 0)


有退出时间=未检查


我尝试将 Keycode 和 GetKey 更改为 GetKeyDown 仍然无法正常工作。


预期结果:跳跃 = 0


//6 Jumping Animation

if (Input.GetKey(KeyCode.Space))

{

        anim.SetInteger("Jumping", 1);

        moveDir.y = 2;

        moveDir = transform.TransformDirection(moveDir);


    }

if (Input.GetKeyUp(KeyCode.Space))

{

    anim.SetInteger("Jumping", 0);

    movementSpeed = 5f;


}


白猪掌柜的
浏览 100回答 1
1回答

拉风的咖菲猫

跳跃状态是等待玩家再次接触地面。所以如果你使用 GetKeyUp。而是动画有退出时间,或者动画没有正确开始,因为跳跃键在播放器仍在播放时上升。所以要解决这个问题很简单。等待几秒钟,然后关闭动画。这是代码:if (Input.GetKey(KeyCode.Space)){    StartCoroutine(jumping(2f)); //set time delay to 2 seconds before the anim stop}private IENumerator jumping(float Time){anim.SetInterger("Jumping",1);moveDir.y = 1;moveDir *= Speed; //your movement speed valuemoveDir = transform.TransformDirection(moveDir); //set local value of moveDir to worldyield return new WaitForSeconds(Time); //adjust the delay of your animation to stopanim.SetInterger("Jumping",0) //Jumping animation stop after time delaymoveDir = new Vector3(0,0,0); //reset the Vector 3 to zero}
打开App,查看更多内容
随时随地看视频慕课网APP