Как отключить сетку пространственного отображения во время выполнения или не дать ей прекратить аугментации?HoloToolKit 2017.4.3.0 - PullRequest
0 голосов
/ 21 июня 2019

В моем приложении пользователь размещает расширенную голограмму внутри объекта реального мира.Как только они закончат размещение объекта, они смогут выдать голосовую команду, которая отключит сетку пространственного отображения комнаты, чтобы она не закрывала голограмму.Например, если сетка представляет собой стул, пользователь может вручную разместить увеличение (которое является трехмерной сеткой стула) непосредственно там, где стул находится в реальной жизни.Из-за сетки пространственного отображения голограмма теперь невидима и закрыта сеткой пространственного отображения.Я хочу иметь возможность отключить это, чтобы пользователь мог видеть увеличение непосредственно на реальном объекте.

Я пробовал решения, упомянутые в следующих темах на форумах разработчиков Hololens.

https://forums.hololens.com/discussion/1339/how-do-you-disable-the-spatial-mesh https://forums.hololens.com/discussion/7483/how-to-start-and-stop-spatial-mapping https://forums.hololens.com/discussion/9463/disable-spatial-mapping

public void FinishedPlacement()
{
    SpatialMapping.Instance.MappingEnabled = false;
    SpatialMappingManager.Instance.DrawVisualMeshes = false;
    SpatialMappingManager.Instance.gameObject.SetActive(false);
    SpatialMappingManager.Instance.StopObserver();
    SpatialMappingManager.Instance.CastShadows = false;
}
}

Я ожидаю, что этот код отключит сетку пространственного отображения, и таким образом голограмма не будет перекрыта им.Но ничего не меняется.

1 Ответ

0 голосов
/ 23 июня 2019

Должен остановить Spatial Mapping.Для меня это работает: SpatialMappingManager.Instance.StopObserver();

Если Spatial Mapping уже запущен, это ничего не изменит, кроме, возможно, не рисования новой сканированной среды: SpatialMappingManager.Instance.DrawVisualMeshes = false;

Так что если вы не хотите, чтобы голограмма нечтобы он был окклюзирован, вы должны установить для DrawVisualMeshes значение false и затем запустить пространственное сопоставление.Или другой вариант - отключить средство визуализации вашего пространственного отображения, чтобы у вас были только невидимые коллайдеры вашего меша пространственного отображения.

...