如果你发现在AR中锚定在脸部的节点无法移动,请确保你正在使用节点的 simdPosition
属性来修改它的位置,而不是使用节点的 position
属性。 另外,请注意如果你修改节点的旋转,你需要将其应用到 simdLocalTransform
属性上而不是 eulerAngles
属性上。 以下是示例代码:
// 获取锚定在脸部的节点
guard let faceNode = sceneView.node(for: faceAnchor) else { return }
// 在simdPosition上修改节点位置
faceNode.simdPosition += float3(x: 0, y: 0.01, z: 0)
// 在simdLocalTransform上应用旋转
faceNode.simdLocalTransform *= float4x4.init(rotationY: .pi/4)