Нахождение фиксированной точки в сетке на Microsoft HoloLens - PullRequest
3 голосов
/ 06 марта 2019

Я пытался найти фиксированную точку в сетке во время выполнения приложения HoloLens (сетка генерируется Microsoft HoloLens ), которую я могу связать после перезапуска приложения, но безуспешно. Моя цель - найти фиксированную точку в сетке , к которой я буду относиться при размещении префабов, сохраненных из последнего запуска приложения . Я буду использовать эту точку в качестве источника для размещения префабов в их предыдущих позициях в сетке, таким образом отображая их там, где они изначально были размещены в сетке.

Я пытался сделать следующее, с неверными результатами:

  • сохранить матрицу LocalToWorld / WorldToLocal Unity4x4 компонента transofrm в SpatialMapping GameObject и выполнить Matrix4x4.MulitplyPoint () на позициях префабов
  • преобразование позиций префабов относительно локального центра сгенерированной сетки
  • преобразование позиций префабов относительно локального центра первой подсетки

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

Единственное ограничение - я не могу использовать WorldAnchors , поскольку мне нужно иметь возможность редактировать положение этих префабов вне приложения MixedReality (особенно в WebGL-приложении ), а затем отобразите их в правильном отредактированном положении в приложении HoloLens в сетке.

1 Ответ

1 голос
/ 25 апреля 2019

Это точно якорная задача. В сетке нет фиксированной точки.

  1. Вам нужно разместить якоря в мире. Затем получите GetNativeSpatialAnchorPtr
  2. SpatialAnchor имеет метод TryCreateRelativeTo (). Используйте его для создания отредактированного местоположения.
  3. Назначьте SetNativeSpatialAnchorPtr () из отредактированного местоположения.
...