我正在为 ARCore 创建多人游戏体验。所以我想共享设置为平面的 TransformableNode
的 LocalPosition
。
因此,当我将 TransformableNode
设置为 ParentNode
然后设置 LocalPosition
时,一切都很好,我得到了 getLocalPosition()
正确的 localPosition。
如果我现在将节点拖动到平面上的另一个点,则似乎 TransformableNode
丢失了其 ParentNode
。因为拖动 node
后,我得到 getLocalPosition() -> [x=0.0, y=0.0, z=0.0]
而不是相对于父 i 的位置之前设置。
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 在其自己的层次结构中操作许多对象,并且可能会导致冲突。