我在场景中使用objloader加载了一个对象,后来我又加载了第二个对象到场景中,但我想将它的绝对位置改变到第一个对象的另一侧。
两个对象的所有位置都是相对于本地坐标系(0,0,0)的。
我该如何更改它的全局位置?
我在场景中使用objloader加载了一个对象,后来我又加载了第二个对象到场景中,但我想将它的绝对位置改变到第一个对象的另一侧。
两个对象的所有位置都是相对于本地坐标系(0,0,0)的。
我该如何更改它的全局位置?
因此,您需要将其替换为以下内容:THREE.Matrix4: .getPosition()已被删除。请改用Vector3.setFromMatrixPosition( matrix )。
objectA.position.setFromMatrixPosition( objectB.matrixWorld );
其中,objectB 是场景中的一个对象,你希望 objectA 复制它的位置。
object1.position.copy(object2.matrixWorld.getPosition());
每个你可以放置到场景中的对象都有一个“位置”属性,它是一个三维向量。你可以简单地改变它的x / y / z值。
例如,假设你的对象被称为“网格”:
mesh.position.x += 1; //you need re-render if you change something in the object after adding to the scene
yourScene.add(mesh);
这将在场景中将对象移动一个“单位”。这意味着你可以这样做:
mesh2.position.x = mesh1.position.x + 1;
yourScene.add(mesh1);
yourScene.add(mesh2);
在这里,您可以查看可添加到THREE.js场景中的对象的其他属性和方法: