我的角色在没有我的干预下向左和向上移动,当我点击d和s时,它向左和向下移动。我发现这不是我的错,因为我的所有按钮都被点击了。
public float moveSpeed = 0.1f;
public void Update()
{
//not inportant
foreach (KeyCode vKey in System.Enum.GetValues(typeof(KeyCode)))
{
if (Input.GetKey(vKey))
{
Debug.Log(vKey.ToString());
}
}
if (Input.GetAxisRaw("Horizontal") != 0 || Input.GetAxisRaw("Vertical") != 0)
{
float horizontalMovement = Input.GetAxisRaw("Horizontal") * moveSpeed;
float verticalMovement = Input.GetAxisRaw("Vertical") * moveSpeed;
Vector3 directionOfMovement = new Vector3(horizontalMovement, verticalMovement, 0);
gameObject.transform.Translate(directionOfMovement);
}
如果使用控制器,或控制器插入到你的设备。你应该为RawInput使用一个死区,因为控制器可能不会居中为零,而且可能会有一些小的RawAxis值。
试着改变你的条件,使其具有类似的功能。
float rawX = Input.GetAxisRaw("Horizontal");
float rawY = Input.GetAxisRaw("Vertical");
if(Mathf.Abs(rawX) > 0.05f || Mathf.Abs(rawY) > 0.05f) {
...
}