Как заставить физика raycaster стрелять в направлении, которое смотрит игрок в Unity Google VR - PullRequest
1 голос
/ 20 октября 2019

В игре, которую я делаю, игрок должен выбирать различные объекты, глядя на них. Чтобы сделать это, я пытаюсь сделать так, чтобы физический лучник стрелял в направлении, на которое смотрит игрок (направление камеры). Обычно я просто добавляю к камере префаб gvrrecitlepointer и помещаю триггеры событий на каждый объект, но это не будет работать, поскольку я использую объекты, которые постоянно меняются.

Когда я пытаюсь Debug.DrawRay(transform.position, transform.forward);, луч не появляется.

Основная проблема заключается в том, что второй аргумент в debus.drawray или Physics.raycast принимает Vector3, а положение камеры - кватернион.

Я сделал скрипт для камеры, который переводит камеру в переменную

gamers = Camera.main.transform.rotation;

, а затем в моем оригинальном сценарии вставил

epicgaming = new Vector3(GameObject.Find("Main Camera").GetComponent<camerarotationvariables>().gamers.x[...]

Debug.DrawRay(transform.position, epicgaming);

, который пытается преобразовать кватернион в вектор, но, хотя значения совпадают, при запуске программы луч запускается в случайных неуправляемых направлениях.

Как я могу заставить Debug.DrawRay / Physics.Raycast действительно запускать в правильном направлении? Заранее спасибо.

...