为什么我的对象在我没有点击任何想法的情况下向左和向上移动?

问题描述 投票:-1回答:1

我的角色在没有我的干预下向左和向上移动,当我点击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);
        }
c# unity3d
1个回答
1
投票

如果使用控制器,或控制器插入到你的设备。你应该为RawInput使用一个死区,因为控制器可能不会居中为零,而且可能会有一些小的RawAxis值。

试着改变你的条件,使其具有类似的功能。

float rawX = Input.GetAxisRaw("Horizontal");
float rawY = Input.GetAxisRaw("Vertical");

if(Mathf.Abs(rawX) > 0.05f || Mathf.Abs(rawY) > 0.05f) {
    ...
}
© www.soinside.com 2019 - 2024. All rights reserved.