scenekit - 如何旋转 SCNNode 以查看另一个节点,同时保持其滚动和俯仰与相机水平?

标签 scenekit arkit scnnode

我正在使用 ARKit 通过连接到相机节点的箭头将人们引导到物理世界中的某个位置。将 LookAtConstraint 应用于以我想要的位置中的节点为目标的箭头几乎可以满足我的需要。但是,我需要阻止箭头左右滚动和上下倾斜。 Example of UI

最佳答案

您是否尝试过设置 isGimbalLockEnabledtrue限制辊旋转?在 documentation苹果提到:“例如,当限制相机跟随移动物体时,将此属性设置为 true 可确保从相机的角度来看地平线保持水平。”

如果这仍然不是您想要的,您可能需要使用类函数 SCNTransformConstraint.orientationConstraint 编写自定义约束。 。您可以将约束编写为辅助约束,基本上限制 X 轴和 Z 轴上的旋转,或者您可以编写自己的具有更多限制的查看约束(在这种情况下,我建议查看 simd.look(at:) function然后从那里限制方向轴)。

这应该可以帮助您完成大部分工作,或者如果它似乎不起作用,我可以稍后添加一些代码。祝你好运!

关于scenekit - 如何旋转 SCNNode 以查看另一个节点,同时保持其滚动和俯仰与相机水平?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52628422/

相关文章:

ios - 如何从 Blender 3D 程序 SWIFT 将行走的人动画放入 SceneKit Xcode

swift - 如何在 SceneKit 中实现角度检测滑动手势识别器?

ios - SceneKit - 线程 - 在哪个线程上做什么?

arkit - Realitykit - 自定义 Material

ios - SCNNode.removeFromParentNode() 和渲染循环

ios - Scene Kit 联系 catagoryBitMasks 总是返回 1

ios - 是否可以在 iPhoneX 上同时运行 ARWorldTracking Session 和 ARFaceTracking Session?

ios - ARKit - 对象未放置

swift - 在 iOS 12.0+ 的 Swift 中更新眼睛变换位置

swift - SceneKit 相机动画 move 和减速