Как мне повернуть узел SCNNode, чтобы посмотреть на другой узел, сохраняя при этом его уровень крена и шага с камерой? - PullRequest
0 голосов
/ 03 октября 2018

Я использую ARKit, чтобы направить людей в положение в физическом мире, используя стрелку, прикрепленную к узлу камеры.Применение lookAtConstraint к стрелке с целью нахождения узла в желаемом месте почти делает то, что мне нужно.Однако мне нужно остановить движение стрелки влево и вправо и наклон вверх и вниз. Пример пользовательского интерфейса

1 Ответ

0 голосов
/ 30 октября 2018

Вы пытались установить isGimbalLockEnabled в true, чтобы ограничить вращение рулона?В документации Apple упоминает: «Например, когда вы заставляете камеру следовать за движущимся объектом, установка этого свойства в true гарантирует, что горизонт остается горизонтальным с точки зрения камеры».

Если это все еще не то, что вы ищете, вам может понадобиться написать пользовательское ограничение, используя функцию класса SCNTransformConstraint.orientationConstraint.Вы можете написать ограничение как вторичное ограничение, которое в основном ограничивает повороты по осям X и Z, или вы можете написать собственное ограничение просмотра с большим количеством ограничений (в этом случае я бы рекомендовал взглянуть на simd.look(at:) функция и затем ограничение осей ориентации оттуда).

Это должно помочь вам в этом, или я могу добавить код позже, если он не работает.Удачи!

...