Среда: ARKit 2.0, iPhone X, iOS 12.1
Во время работы ARSeesion
в состоянии ARWorldMappingStatusMapped
,
- Несколько пользовательских привязок в указанных положениях ( # A ) были добавлены на карту мира с помощью
ARSession.AddAnchor
. - Карта мира была сохранена в файл.
Затем закрыть приложение и перезапустите ARSession
,
- конфигурацию Загрузил сохраненную карту мира и присвоил ей
ARKitWorldTrackingSessionConfiguration.initialWorldMap
- опция запуска сброс отслеживания и удаление существующих якорей
- Затем перезапустите сеанс, вызвав
ARSession.runWithConfiguration
с опцией configuration и run выше. - Когда состояние
ARSession
указывает, что оно согласовало записанную карту мира с текущей средой, считайте положения якорей ( # B ) из ARWorldMap.anchors
.
Но я обнаружил, что позиции якорей чтения ( # B ) не меняются по сравнению с позициями, когда они были сохранены ( #A ). Это неправильно.Почему?
Поскольку начальная позиция телефона - это позиция начала координат.И приложение было когда-то закрыто, и телефон был перемещен в другое место.Таким образом, положение начала координат изменилось после перезапуска ARSeesion
.Тогда ARSession
также должен согласовать позиции ARAnchors
, сохраненные на карте мира, с надлежащими местами, таким образом, позиции ARAnchors
должны были быть изменены.