基本上,我试图移动一个字符,所以当我按W时它会向前移动,但是当我放开它时它不会停止(仅偶尔出现一次)。我正在更新无效,而不是固定更新。
private void Update()
{
if (controller.isGrounded)
{
if(Input.GetKey(KeyCode.W))
{
anim.SetInteger("condition", 1);
moveDir = new Vector3(0, 0, 1);
moveDir *= speed;
moveDir = transform.TransformDirection(moveDir);
}
if(Input.GetKeyUp (KeyCode.W))
{
anim.SetInteger("condition", 0);
moveDir = new Vector3(0, 0, 0);
}
}
rot += Input.GetAxis("Horizontal") * rotSpeed * Time.deltaTime;
transform.eulerAngles = new Vector3(0, rot, 0);
moveDir.y -= gravity * Time.deltaTime;
controller.Move (moveDir * Time.deltaTime);
}
}
尝试查看您的动画师,并检查是否已选中“应用根运动”。检查器中的动画师
根运动的作用是通过动画而不是通过代码移动角色。这是有关根运动的详细说明。什么是根部运动及其工作原理
我认为我能够重现您的问题,并且得到了相同的结果。取消选中“应用根运动”后,一旦放开“ W”,角色就会停止。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句