Ios 如何在场景工具包中的3D SCNNode内添加2D视图

Ios 如何在场景工具包中的3D SCNNode内添加2D视图,ios,objective-c,3d,scenekit,scnnode,Ios,Objective C,3d,Scenekit,Scnnode,我试图在随后的3D视图上方添加一种类型的“通知”,如果相机旋转或SCNNode旋转,则该视图始终保持向前看,进行计算和制作平面3D并在每次父对象旋转或相机旋转时旋转它是“昂贵的”,我不想在3D xyz之后的所有内容上添加UIView,因为我希望它与3D worls深度排序交互 下面是我想要实现的一个例子: 这是一个不随父视图旋转的视图,我如何实现它 提前谢谢你 我找到了一种方法,非常简单: SCNLookAtConstraint *constraint = [SCNLookAtConstrai

我试图在随后的3D视图上方添加一种类型的“通知”,如果相机旋转或SCNNode旋转,则该视图始终保持向前看,进行计算和制作平面3D并在每次父对象旋转或相机旋转时旋转它是“昂贵的”,我不想在3D xyz之后的所有内容上添加UIView,因为我希望它与3D worls深度排序交互

下面是我想要实现的一个例子:

这是一个不随父视图旋转的视图,我如何实现它


提前谢谢你

我找到了一种方法,非常简单:

SCNLookAtConstraint *constraint = [SCNLookAtConstraint lookAtConstraintWithTarget:cameraNode];
constraint.gimbalLockEnabled = YES;
nodeA.constraints = @[constraint];
这将使节点A始终注视摄像机,我将
gimballockebled=YES
设置为不奇怪地旋转


希望它能帮助其他人,它保存了我的游戏:-)

因此,基本上你可以将横幅旋转到其父对象的相反方向(始终面向摄影机),完成。为什么这么做会太贵?@learncos2D这是一个游戏,它涉及大量节点,旋转横幅会有很多FOR,而且你可以自由旋转相机,因此会有很多计算。如果你在视图空间(相机的坐标系)中工作,你可以使用着色器修改器来实现这一点一切都变得简单。你可以在网上寻找“billboard shader”。这是一个游戏,会有很多计算。不要因为担心事情进展缓慢而不去做。让它工作起来,当你发现性能问题时,你就分析并优化。另外,我敢打赌,如果你有大量的节点,旋转计算很可能根本不会起作用,大多数游戏都是完全受gpu限制的,即绘制3d模型所需的时间比一些微不足道的偏移计算要长得多。很好地创造性地使用了
SCNLookAtConstraint
!看起来它是朝着而不是朝前的:(