#c# #unity3d #rotation
#c# #unity3d #вращение
Вопрос:
Я пытаюсь создать шутер fps на Unity c #, но какая бы функция я ни использовал для изменения поворота по оси Y, она не будет двигаться. В первый раз, когда я тестировал это, это сработало, но затем, час спустя, после работы с некоторыми другими вещами, которые не имеют ничего общего с этим скриптом, это внезапно не сработало. Я пробовал .Rotate(), localRotation, Quaternion .Eulern что угодно, но оно не движется. Я также проверил, было ли это из-за того, что переменная, которую я использовал, не была установлена, но это было.
Пожалуйста, помогите, если можете!
float mouseX = Input.GetAxis("Mouse X") * Sensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * Sensitivity * Time.deltaTime;
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation, -90f,90f);
//x
Debug.Log(mouseX);
player.rotation = Quaternion.Euler(0,mouseX,0);
transform.rotation = Quaternion.Euler(0,mouseX,0);
//y
transform.localRotation = Quaternion.Euler(xRotation,0,0);
Комментарии:
1. Верхняя строка на самом деле не отодвигается назад…
Ответ №1:
xRotation -= mouseY; Вы вычитаете вращение мыши Y из вращения мыши X, X и Y — разные оси! Пожалуйста, посмотрите учебные пособия по вращению, например: https://answers.unity.com/questions/288948/rotate-around-local-y-axis.html
Комментарии:
1. mouseY — это 2d-поз для мыши. XRotation — это вращение вокруг оси X. Плюс его mousex, который, похоже, не работает.