ARCore TransformableNode 在拖动后将 localPosition 设置为 [x=0.0, y=0.0, z=0.0]

ARCore TransformableNode sets localPosition to [x=0.0, y=0.0, z=0.0] after dragging

我正在为 ARCore 创建多人游戏体验。所以我想分享一个设置为平面的 TransformableNodeLocalPosition

所以当我将我的 TransformableNode 设置为 ParentNode 然后设置 LocalPosition 时,一切正常,我得到 getLocalPosition() 正确的 localPosition。

如果我现在将节点拖到平面上的另一个点,TransformableNode 似乎丢失了它的 ParentNode。因为在拖动 node 之后,我得到的是 getLocalPosition() -> [x=0.0, y=0.0, z=0.0] 而不是我之前设置的与父项相关的位置。

myAnchorNode.addChild(myTransformableNode);
myTransformableNode.setLocalPosition(position);
//dragging it at runtime
Vector3 x = myTransformableNode.getLocalPosition(position);
// x = [x=0.0, y=0.0, z=0.0]

我建议您改为使用此方法来获取相对位置。

https://docs.unity3d.com/ScriptReference/Transform.InverseTransformPoint.html

ARCore 在其自己的层次结构中操作大量对象,可能会引起冲突。