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