我想将 ARCamera 的旋转应用于 3D 节点,以便该节点始终面向相机。我如何在 Objective-C 中实现这段代码?
你可以得到一个SCNNode来面对ARCamera
通过使用SCNBillboardConstraint
:
SCNBillboardConstraint 对象会自动调整节点的方向,以便其局部 z 轴始终指向当前用于渲染场景的 pointOfView 节点。例如,您可以使用广告牌约束,使用二维精灵图像而不是三维几何图形来高效渲染场景的各个部分 - 通过将精灵映射到受广告牌约束影响的平面上,精灵可以保持其相对于观看者的方向。要将约束附加到 SCNNode 对象,请使用其约束属性。
目标C:
SCNBillboardConstraint *lookAtConstraint = [SCNBillboardConstraint billboardConstraint];
node.constraints = @[lookAtConstraint];
Swift:
let lookAtConstraint = SCNBillboardConstraint()
node.constraints = [lookAtConstraint]
如果您希望 SCNNode 面向另一个节点,那么您可以使用SCNLookAtConstraint
:
例如,您可以使用注视约束来确保摄像机或聚光灯始终跟随游戏角色的移动。要将约束附加到 SCNNode 对象,请使用其约束属性。
节点指向其局部坐标系的负 z 轴方向。该轴定义包含摄像机的节点的视图方向和包含聚光灯或定向灯的节点的照明方向,以及节点的几何图形和子节点的方向。当 Scene Kit 评估查看约束时,它会更新受约束节点的变换属性,以便该节点的负 z 轴指向约束的目标节点。
目标C:
SCNLookAtConstraint * lookAtNode = [SCNLookAtConstraint lookAtConstraintWithTarget:secondNode];
fistNode.constraints = @[lookAtNode];
Swift:
let lookAtConstraint = SCNLookAtConstraint(target: secondNode)
firstNode.constraints = [lookAtConstraint]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)