Quaternion.Euler и transform.Translate - PullRequest
       1

Quaternion.Euler и transform.Translate

0 голосов
/ 03 сентября 2018

Я пытаюсь создать простой игровой объект, который можно перемещать и вращать с помощью клавиатуры. Сейчас он работает хорошо, но моя единственная проблема в том, что он продолжает вращать объект X. Я хочу заблокировать его в определенном положении, но при этом иметь возможность вращать игровой объект. Я попытался заблокировать через RigidBody, но это не сработало.

Я также попробовал Quanternion.Euler, но затем произошла странная ошибка. Когда я пытаюсь двигаться вверх, вращение блокируется на Z = 90 и Y = -90, а когда я пытаюсь двигаться вниз, вращение блокируется на Z = -90 и Y = 90. Это происходит только тогда, когда я пытаюсь изменить X на -90 через Quanternion.Euler. Я предполагаю, что ошибка связана с Transform.Translate, функцией, которую я использую для перемещения моего игрового объекта с его вращением.

вот мой код:

   transform.Translate(speed * Time.deltaTime, angularSpeed*Time.deltaTime, 0, Space.Self);
    transform.rotation = Quaternion.Euler(-90f, transform.rotation.eulerAngles.y, transform.rotation.eulerAngles.z);
    if (Input.GetKey(KeyCode.W))
    {
        transform.Rotate(0, 1, 0);

    }

    if (Input.GetKey(KeyCode.S))
    {
        transform.Rotate(0,-1, 0);

    }

    if (Input.GetKey(KeyCode.D))
    {
        transform.Rotate(0,0, 0.2f);
        angularSpeed =-20;
    }

    if (Input.GetKey(KeyCode.A))
    {
        transform.Rotate(0, 0, -0.2f);
        angularSpeed =20;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...