Как я могу изменить ручные лучи в своем проекте MRTK v2 для HoloLens 2 на параболические, а не линейные?

Мой проект HoloLens 2 имеет контент, который устроен так, что я не могу нацелить коллайдеры с помощью существующих ручных лучей. Раньше я нацеливался на контент с помощью взгляда в голову, но, когда на теле ниже ручные лучи, труднее получить контент, который я хочу выбрать. Я полагаю, что мне пригодится параболический отборный луч, подобный тем, которые используются при телепортации в Смешанной реальности для достижения поверхностей над участником.

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

Мой проект использует MRTK v2, и стандартные линейные лучи работают.

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

1 ответ

Решение

Вы можете изменить DefaultControllerPointer заранее использовать провайдер данных физической параболической линии вместо провайдера данных линии Безье. Это приведет к искажению линии, используемой указателем, для большей параболичности.

До:

После:

Обратите внимание, что я удалил розовые компоненты и добавил зеленые компоненты.

Вы также захотите увеличить разрешение наведения линии указателя с 2 до чего-то большего, это означает, что луч, используемый для запроса ударил, будет иметь более высокое разрешение:

И вы можете увеличить разрешение самого MR Line Renderer.

Демо параболического указателя руки:

Другие вопросы по тегам