ARKit:将节点放在节点后面

ARKit: Place a Node right behind a Node

即使我改变了 iPhone 的位置,我仍想将红色节点放在蓝色节点的正后方。

(请看图) 当我启动我的 AR 应用程序并点击屏幕中央以添加蓝色节点时,我得到蓝色节点的 x、y、z 轴并将红色节点的 z 轴设置得更远一点。在这种情况下,我的应用程序的行为符合我的预期。

问题是当我旋转iPhone,点击屏幕添加蓝色节点时,红色节点似乎与初始状态处于同一深度。

我期望的是当我添加一个蓝色节点时,总是把红色节点放在它后面(添加时蓝色节点应该总是覆盖红色节点)

有人知道怎么做吗?

我有这段代码可以让节点在我添加它们时始终面向相机。但是 space 中的位置有点不是我预期的

//TAP THE SCREEN
let worldTransform = hitTestResultsWithFeaturePoint.worldTransform
let hitTransform = SCNMatrix4(worldTransform)
let hitVector = SCNVector3Make(hitTransform.m41, hitTransform.m42, hitTransform.m43)
let rotate = simd_float4x4(SCNMatrix4MakeRotation(sceneView.session.currentFrame!.camera.eulerAngles.y, 0, 1, 0))
let rotateTransform = simd_mul(worldTransform, rotate)

//ADD THE BLUE NODE
let bluenode = SCNNode()
bluenode.transform = SCNMatrix4(rotateTransform)
bluenode.position = SCNVector3(hitVector.x, hitVector.y, hitVector.z)

//ADD THE RED NODE BEHIND THE BLUE NODE
let rednode = SCNNode()
rednode.transform = SCNMatrix4(rotateTransform)
rednode.position = SCNVector3(hitVector.x, hitVector.y, hitVector.z - 0.05)

将红色节点添加为坐标为 (0.0,0.0,-0.05) 的蓝色节点的子节点,然后使用“SCNBillboardConstraint”使蓝色节点面向相机应该可以解决问题