首页 文章

保持在摄像机视图中心的 Scenekit 对象(Swift)

提问于
浏览
5

所以我的SceneKit项目中有一个可以自由旋转和移动的摄像头,我有一个物体,在某些情况下,需要与摄像机保持恒定的距离并始终位于其视野的中心无论相机如何旋转。不幸的是,我是SceneKit的新手,不知道如何做到这一点。

所以我正在寻找的关键事项是:

  • 如何使对象始终与相机保持相同的距离

  • 如何使对象始终位于摄像机视图的中心,无论它看起来是什么方向

此时,相机和对象(具有框几何体的SCNNode)都是同一场景的子项。

我在swift编码所以我更喜欢使用它的答案,但是如果你在objective-c中有一个解决方案,那也是有用的。

谢谢你!

1 回答

  • 3

    想想你如何在现实世界中解决这个问题。抓住两到四个合适的长度。使用胶带将球连接到一端,并将相机(瞄准球)连接到另一端。

    现在你可以携带这个装备了。球将始终位于摄像机视图的中心,并且与摄像机保持恒定距离。

    您可以在 SceneKit 中虚拟地构建相同的装备。创建一个新的 SCNNode 作为装备(代替两个四个)。将球添加为子节点,位于(0,0,0)。将相机添加为子节点,位于(0,0,5)(相机向下看-Z 轴,因此该位置应将球放在视图的中心)。现在,您可以将装备节点移动到所需场景中的任何位置,并且您将拥有一致的球位置。

相关问题