Я пытаюсь создать простой игровой объект, который можно перемещать и вращать с помощью клавиатуры. Сейчас он работает хорошо, но моя единственная проблема в том, что он продолжает вращать объект 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;
}