我是这样做的,首先自动同步左手腕和cube,
<xr-ar-tracker id='tracker' mode="Body" auto-sync="9">
<xr-mesh id='hand' name="hand" geometry="cube" scale="0.1 0.1 0.1" uniforms="u_baseColorFactor:0 1 0 1" />
<xr-mesh
node-id="cube" id='cube' scale='0.2 0.2 0.2'
geometry="cube" uniforms="u_baseColorFactor:0.8 0.4 0.4 1"
/>
</xr-ar-tracker>
然后在代码里获得这个位置:
this.hand = new (xrFrameSystem.Vector3)();
this.hand.set(el.getComponent(xrFrameSystem.Transform).worldPosition);
//把位置赋予另外一个物体
this.scene.getNodeById('cube').position.set(this.hand)
//结果位置不对,不是在手的位置。而是在中央位置附近。
//我也试了另外一种方式:
this.tracker.getPosition(9, this.hand, false);
this.scene.getNodeById('cube').position.set(this.hand)
//结果也是同样在中央位置附近。
//我做这个的目的是为了在手的附近某个位置显示物体。
用法完全是错的,你把一个世界空间坐标放到tracker子节点当然不行,而且有根本不需要这么用,仔细看明白文档再说吧。