Как получить расстояние от контроллера мечты до заостренного игрового объекта в единстве? - PullRequest
0 голосов
/ 16 сентября 2018

После примера google-vr мне удается добавить камеру и контроллер в мою сцену. Следующее, что мне нужно, это определить расстояние между моим контроллером и любым остроконечным игровым объектом на сцене. После поиска я не могу найти ни учебника, ни информации о том, как получить расстояние.

Итак, есть ли какой-нибудь новый рабочий учебник о том, как это сделать? (Многие учебники в Интернете устарели, так как Google обновляет свой API так часто) Или это на самом деле простая задача, то есть я могу получить значение из GvrPointerInputModule.Pointer / GvrLaserPointer / некоторого другого класса GVR? Заранее спасибо ~

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Как я и подозревал, GvrLaserPointer - это ответ. Если CurrentRaycastResult.gameObject не равно нулю, то лазер что-то пересекает. Тогда мы можем получить точку пересечения от CurrentRaycastResult.worldPosition. Используя эту точку, мы можем легко рассчитать расстояние.

Примечание: на всякий случай, если у кого-то не получится с этим методом, как я делал раньше. Проверьте свою группу кастинга лучей. Убедитесь, что ваша «маска событий Raycaster» в «GVRPointerPhysicsRaycaster» включает только нужные слои. И если у вас есть холст в области экрана, проверьте его «Блокирующую маску» в «Графическом Raycaster». Это «Все» по умолчанию, и ваш указатель может продолжать пересекаться с холстом, что приводит к «странной» точке пересечения. Это причина моей проблемы, и, чтобы исправить ее, я выбираю «Ничего» для «Блокирующей маски» и вуаля.

0 голосов
/ 17 сентября 2018

Вам нужно сделать лучевые трансляции с контроллера и измерить разницу между местоположением попадания и началом каста лучей.Я думаю, что радиопередачи Unity могут вернуть это расстояние встроенным.

...