Родительско-дочерние отношения в Three.js
Я создал один куб с шириной =2083, высотой =1987, глубиной = 0. Затем я нарисовал другой куб высотой =40, шириной = 80, глубиной = 0 и сделал второй куб дочерним по отношению к первому кубу. Я установил положение дочернего куба так, чтобы он попадал в родительский куб. Положение куба ребенка: (х = -1210, у = -880)
camera = new THREE.PerspectiveCamera( 30, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.x = 0;
camera.position.y = 0;
camera.position.z = 8000;
var parentCube = new THREE.Mesh(new THREE.BoxGeometry(2083,1987,0), new THREE.MeshBasicMaterial({color:0xaa00ff}));
childCube = new THREE.Mesh(new THREE.BoxGeometry(80, 40, 0), new THREE.MeshBasicMaterial({color: 0x00ff00}) );
childCube.position.x = -1210;
childCube.position.y = -880;
childCube.position.z = 0;
parentCube.add(childCube);
Проблема в том, что дочерний куб рисуется вне родительского куба.
Кроме того, если я удаляю отношения родитель-потомок, то childCube рисуется как положено внутри parentCube.
1 ответ
Решение
Когда вы определяете отношения "родитель-ребенок", позиция ребенка относительно родителя.
Чтобы поместить ребенка в родительский центр, используйте положение (0,0,0)
Ваша примерная позиция действительно выходит за пределы родителя.