Как перенастроить базу SKNodes в зависимости от местоположения пользователя - PullRequest
0 голосов
/ 04 июня 2019

В настоящее время я использую ARKit и CoreLocation для размещения элементов на экране. Эти элементы (например, здание, дом и т. Д.) Размещаются на основе их собственных координат (долгота / широта) и пользовательских координат. Как вы знаете, даже при установке наилучшей точности CoreLocation не всегда точен, а местоположение пользователя и направление курса часто корректируются.

Когда направление курса или местоположение пользователя были исправлены, как я могу изменить все без необходимости удаления и повторного добавления всего узла? Похоже, вы не можете изменить свойство перевода камеры. Я также попробовал setWorldOrigin(relativeTransform: simd_float4x4), но это ничего не изменило.

Лучшее решение, которое я нашел на сегодняшний день, это использование SKAction, но если у вас много узлов, это, как правило, очень дорого и замедляет работу приложения.

Можете ли вы сказать мне, если я делаю что-то не так или есть более простой способ сделать это?

1 Ответ

1 голос
/ 04 июня 2019

Давайте рассмотрим, что физическое местоположение только пользователя изменяется, все остальное размещено относительно других объектов.По этой причине я бы посоветовал вам установить родительский узел для всех ваших узлов в качестве общего узла, который может быть добавлен как дочерний элемент корня по умолчанию.

, поэтому ваша структура будет

rootNode -> myRootNode -> (all other 3D)

таким образом вы можете обновить перевод myRootNode, и он переместит всех своих детей на место.

...