【发布时间】:2019-06-13 20:33:56
【问题描述】:
【问题讨论】:
标签: ios swift augmented-reality arkit sknode
【问题讨论】:
标签: ios swift augmented-reality arkit sknode
为此,在创建新节点后,立即使用 worldOrientation 实例属性来控制节点相对于场景世界坐标空间的方向。
var worldOrientation: SCNQuaternion { get set }
这个四元数隔离了节点
worldTransform矩阵的旋转方面,这又是节点从局部空间到场景世界坐标空间的变换的转换。即表示节点与场景的rootNode之间的轴和旋转角度的差异。
let worldOrientation = sceneView.scene.rootNode.worldOrientation
yourNode.rotation = worldOrientation /* X, Y, Z, W components */
附注(当你更新你的问题时):
如果您使用SpriteKit,则您在 ARSKView 中生成的 2D 精灵始终面向相机。因此,如果摄像机围绕真实场景的某个特定点移动,则所有精灵都必须围绕它们的轴心点旋转,仍然面向摄像机。
没有什么可以阻止您同时使用 SceneKit 和 SpriteKit。
【讨论】:
SCNBillboardConstraint,它会自动调整节点的方向,使其局部 z 轴始终指向它所申请节点的 pointOfView。 stackoverflow.com/questions/49194597/…