当我将 Object3D 添加到另一个 Object3D (“add”方法)时,孩子会根据父母的变化改变它的变换。
有没有办法在将孩子添加到父母后保持孩子的位置/旋转/比例?
小提琴:https ://jsfiddle.net/pqfzd8a2/1/
mesh = new THREE.Mesh(geometry, material);
mesh.position.y = 25;
var mesh2 = mesh.clone();
mesh2.position.y = 80;
var mesh3 = mesh2.clone();
mesh.rotation.z = Math.PI*0.25;
scene.add(mesh);
mesh.add(mesh2);
scene.add(mesh3);
做了什么?
- 网格旋转。
- mesh2 和 mesh3 是彼此相同位置的克隆。
- mesh2 被添加到网格中,而 mesh3 被添加到场景中。
mesh2 和 mesh3 之间的区别在于它们被添加(父级)到不同的父级(相应地,网格和直接添加到场景中)。在被添加(父母)之前,他们处于相同的位置。关键是将对象保持在添加(父对象)之前的位置。
预期结果:mesh2 和 mesh3 应该在相同的位置。
实际结果:mesh2 添加后会改变位置/旋转/缩放。
如何使对象在成为父对象后保持其全局变换?