Вы, ребята, знаете, почему мое вращение Y не изменится?

#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, который, похоже, не работает.