Пример закрепления с помощью лучей
Сопроводительное видео
Дополнительный контекст см. в этом сопроводительном видео.
Связанные примеры
Пример пространственных маркеров демонстрирует настройку пространственных маркеров путем перемещения объектов маркеров в нужное положение вручную с помощью возможностей MRTK. Для контекста также см. статью о функции пространственных маркеров.
Вместо манипулирования объектами вручную этот пример использует тесты испускания луча на сетках пространственной реконструкции (SR) для настройки выравнивания мировой системы координат.
Что более важно, этот пример также создает все необходимые компоненты World Locking Tools из скрипта и не требует настройки ресурсов в редакторе.
Содержимое сцены
В сцене RayPins Есть восемь объектов виртуальных маркеров типа Space Pin. Четыре находятся на уровне пола: в северо-восточном, юго-восточном, северо-западном и юго-западном углах квадрата со стороной размером 4 метра.
Еще четыре маркера находятся на метр выше, что позволяет понять, что они являются точками на стенах на расстоянии шесть метров друг от друга.
Создание примера
Для этого примера требуется возможность SpatialPerception. Для использования голосовых команд также требуется возможность Microphone (Микрофон).
Выполнение примера
Физическая подготовка
Найдите физическое пространство со свободным местом. Поместите маркеры на пол и стены с таким же расстоянием между ними, как и у виртуальных маркеров в сцене. Необязательно иметь физический маркер для каждого виртуального.
Но полезно пометить физические маркеры именами соответствующих виртуальных маркеров (например, "NW") или нарисовать карту, отметив их расположение.
Настройка приложения
Создайте сцену RayPins и разверните ее на устройстве.
Запуск приложения
Запуск
При запуске система координат основывается на положении головы, а виртуальная сетка и расположение маркеров будут произвольными.
Первый маркер
Среди переключателей выберите один из маркеров, для которого существует соответствующий физический маркер в комнате. Щелкните физический маркер в комнате. Сцена сместится для выравнивания выбранного виртуального маркера по физическому маркеру, на который указывает луч.
Если выравнивание некорректно (например, из-за ошибки при выборе), просто повторите выбор с соответствующим переключателем, пока не будет достигнуто нужное выравнивание.
Второй маркер
Перейдите к другому физическому маркеру в комнате и выберите его виртуальный маркер среди переключателей. Щелкните такой физический маркер. Сетка и маркеры теперь будут повернуты для выравнивания обоих маркеров.
Другие маркеры
Если пользователь находится рядом с одним из первых двух размещенных маркеров, выравнивание должно быть очень похожим для физических и виртуальных маркеров.
Но для других маркеров могут существовать значительные расхождения между физическим и виртуальным миром. Они могут возникать по разным причинам, но в основном из-за неточного размещения физических маркеров или из-за ошибки средства отслеживания.
Повторите выбор переключателя и размещение виртуальных маркеров по попаданию луча для всех последующих физических маркеров, размещенных в комнате. После этого размещения все такие маркеры должны иметь хорошее выравнивание при приближении к ним.
Проверка
Вы можете использовать физическую рулетку для проверки интерполированного выравнивания между маркерами. Линии сетки размещены на расстоянии один метр друг от друга, и линии имеют ширину в один сантиметр.
Сохраняемость
Так как AutoSave и AutoLoad включены для WorldLockingContext в сцене RayPins, после выравнивания содержимого по физической комнате и завершения работы приложения и при повторном запуске приложения виртуальная сетка и маркеры восстановят свое выравнивание по физической комнате.
Чтобы очистить выравнивание и начать сначала, выберите переключатель Reset (Сброс) или удалите и повторно установите приложение.