В игре, которую я делаю, игрок должен выбирать различные объекты, глядя на них. Чтобы сделать это, я пытаюсь сделать так, чтобы физический лучник стрелял в направлении, на которое смотрит игрок (направление камеры). Обычно я просто добавляю к камере префаб 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 действительно запускать в правильном направлении? Заранее спасибо.