Счетчик дочернего игрового объекта вращается при вращении родителя в единицу - PullRequest
0 голосов
/ 03 мая 2020

В моем контроллере от первого лица у меня есть пустой игровой объект с камерой. Я хочу вращать игровой объект вокруг оси y, а камеру - вокруг оси x, но камера вращается в обратном направлении.

Структура моего игрового объекта выглядит следующим образом:

PlayerObject

  • GameObejct

    • Камера

Это сокращенная версия кода im используя:

public Transform GameObject;
private Camera PlayerCamera;
public Quaternion cam_pan;
public Quaternion cam_tilt;

private void Start()
{
    PlayerCamera= GameObject.GetComponentInChildren<Camera>();
}

private void Update()
{
    cam_tilt = Quaternion.Euler(cam_tilt.eulerAngles.x - Input.GetAxis("Mouse Y"), 0, 0);
    cam_pan = Quaternion.Euler(0, cam_pan.eulerAngles.y + Input.GetAxis("Mouse X"), 0);

    PlayerCamera.transform.rotation = cam_tilt;
    GameObject.transform.rotation = cam_pan;
}

Я относительно новичок в единстве, поэтому простите меня, если я упускаю очевидное, но я не нашел никакого объяснения этому поведению, и я действительно в растерянности.

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Я не понимаю, что именно ты хотел сказать. Я думаю, что это ваша проблема: камера вращается вокруг оси X и Y; но вы хотите повернуть его только вокруг оси X.

Вы вращаете свой игровой объект вокруг оси Y. Ваша камера - дитя вашего Gameobject. Это означает, что вы вращаете камеру вокруг оси Y. Снова вы вращаете камеру вокруг оси X. Тогда ваша камера будет вращаться вокруг оси Y и оси X.

Если вы хотите вращать камеру только вокруг оси X, не делайте это как потомок Gameobjet.

0 голосов
/ 03 мая 2020

вы добавляете Input.GetAxis («Мышь Y») и вычитаете Input.GetAxis («Мышь X») просто примечание, если у вас есть дочерний элемент, когда вы поворачиваете родительский элемент, вы также поворачиваете дочерний элемент

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...