Нужно, чтобы можно было вращать камеру мышью. Ранее это было реализовано так:
void Update()
{
X = Input.GetAxis("Mouse X") * speeds * Time.deltaTime;
Y = -Input.GetAxis("Mouse Y") * speeds * Time.deltaTime;
transform.rotation = Quaternion.Euler(Y, X, 0);
}
Однако когда появилась необходимость изменить поворот камеры, обнаружилось, что ее тут же возвращает в исходное положение.
Переделали:
void Start()
{
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void Update()
{
X = Input.GetAxis("Mouse X") * speeds * Time.deltaTime;
Y = -Input.GetAxis("Mouse Y") * speeds * Time.deltaTime;
transform.rotation *= Quaternion.Euler(Y, X, 0);
if (Input.GetKeyUp(KeyCode.Escape))
{
Cursor.lockState = CursorLockMode.None;
}
}
Но теперь появилось странное вращение вокруг оси Z, хотя в коде явно указан 0.
Помогите, пожалуйста, как избавиться от этого вращения? Или вообще существует более оптимальный способ для решения задачи?