节点的世界位置始终是原点 - ARKit 锚点

Node's world position is always are origin - ARKit anchor

我只是在检测到平面并将其添加到我的 AR 场景后,试图找到节点的世界位置和旋转。

func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
  if !(anchor is ARPlaneAnchor) {
        return
    }
  let plane = //to visualise planes
  node.addChildNode(plane)
  print("Node : \(node.worldPosition)"
 }

但 node.worldPosition 总是 returns SCNVector3(x: 0.0, y: 0.0, z: 0.0)。看起来像当地的位置。只有锚给出了它各自的世界位置。我希望能够根据世界变换来变换节点。 提前致谢。

tldr:在 renderer(_:didUpdate:for:)

中打印 node.worldPosition

您正在使用 renderer(_:didAdd:for:)。将此视为您最初响应新锚点上的新节点的地方。新节点尚未更新相关信息。像您一样向这个新节点添加子平面将是一个很好的回应。

相比之下,renderer(_:didUpdate:for:)用于响应节点上的实际更新。这是我们看到先前添加的节点按预期运行的时候。这就是您看到意外值的原因。