一般写法为,如果想将A动态设置到B的位置,要先将B的坐标相对于B的父节点转换成世界坐标
pos = b.parent.convertToWorldSpaceAR(b.position)
再将此坐标转换到A的父节点的相对坐标
targetPos = a.parent.convertToNodeSpaceAR(pos)
a.position = targetPos
但在设置坐标时会碰到一个问题,如果场景的结点挂有widge组件,而设置位置的逻辑在场景的onload或start函数内,会产生位置设置不正确的现象,这是因为Widget 组件会自动调整当前节点的坐标和宽高,不过目前调整后的结果要到下一帧才能在脚本里获取到,官方的文档中建议先手动调用updateAlignment。我的做法是用`
this.scheduleOnce(()=>{
//动态设置位置的方法
},0)
这样简单处理。