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 创建多人游戏体验。所以我想分享一个设置为平面的 TransformableNode
的 LocalPosition
。
所以当我将我的 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 在其自己的层次结构中操作大量对象,可能会引起冲突。
我正在为 ARCore 创建多人游戏体验。所以我想分享一个设置为平面的 TransformableNode
的 LocalPosition
。
所以当我将我的 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 在其自己的层次结构中操作大量对象,可能会引起冲突。