答案 0 :(得分:1)
为此,在创建新节点之后,立即使用worldOrientation
实例属性来控制该节点相对于场景的世界坐标空间的方向。
var worldOrientation: SCNQuaternion { get set }
此四元数隔离了节点
worldTransform
矩阵的旋转方面,这又是节点从局部空间到场景的世界坐标空间的转换的转换。也就是说,它表示节点与场景的rootNode
之间的旋转轴和旋转角度的差异。
let worldOrientation = sceneView.scene.rootNode.worldOrientation
yourNode.rotation = worldOrientation /* X, Y, Z, W components */
P.S。 (当您更新问题时):
如果您使用的是SpriteKit,则在ARSKView中生成的2D子图形将始终面向相机。因此,如果摄影机绕着真实场景的确定点移动,则所有子画面都必须绕其轴心点旋转,并且仍然面向摄影机。
没有什么可以阻止您同时使用SceneKit和SpriteKit 。