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

时间:2016-05-15 13:47:24

标签: ios swift math 3d scenekit

所以我的SceneKit项目中有一个可以自由旋转和移动的相机,我有一个物体,在某些情况下,需要与相机保持恒定的距离,并始终无论相机如何旋转,都处于视图的中心。不幸的是,我是SceneKit的新手,并且不知道如何实现这一目标。

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

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

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

  3. 目前,相机和物体(带有框几何体的SCNNode)都是同一场景的孩子。

    我在swift进行了编码,因此我更喜欢使用该答案,但如果您在objective-c中有解决方案,那也可以。

    非常感谢!

1 个答案:

答案 0 :(得分:3)

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

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

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