我有这样的网格(每个都是上面的子网格)
Scene
-scene.add(SpaceMesh)
-SpaceMesh.add(ShipMesh)
SpaceMesh
在场景中移动。ShipMesh
没有移动。
如果我请求ShipMesh.position.x
,它返回0(逻辑)
如何在SpaceMesh
中获取我的ShipMesh
的坐标?
--
示例:
SpaceMesh位置x=100
ShipMesh。position.x=0
逻辑结果必须是ShipMeshPositionInSpaceMesh.x=-100
我不知道这是否是最好的方法,但来自:如何:获取子对象的全局/世界位置
spaceMesh.updateMatrixWorld();
var vector = new THREE.Vector3();
vector.setFromMatrixPosition( spaceMesh.matrixWorld );
vector.multiplyScalar( -1 );
console.log(vector); // my coords in SpaceMesh
如果有更好的解决方案或一些"最佳实践",请纠正我的错误,谢谢