我想将一个子对象(圆柱体)与另一个对象(cube2)对齐。我使用了lookAt函数,但对齐方式不正确。我的错误在哪里?three.js lookAt函数无法正常工作
我有以下代码:
//cube 1
var cube=new THREE.BoxGeometry(2,2,2);
var material=new THREE.MeshBasicMaterial ({ color: 0xffffff });
mesh1=new THREE.Mesh(cube,material);
mesh1.position.set(-2,2,0);
scene.add(mesh1);
//cube 2
var cube2=new THREE.BoxGeometry(2,2,2);
var material=new THREE.MeshBasicMaterial ({ color:0x000000 });
mesh2=new THREE.Mesh(cube2,material);
mesh2.position.x=6;
mesh2.position.y=2;
scene.add(mesh2);
//cylinder
var cylinder=new THREE.CylinderGeometry(1,1,5,30);
var material=new THREE.MeshBasicMaterial({ color:0xff3399 });
mesh3=new THREE.Mesh(cylinder,material);
mesh3.position.x=4.5;
mesh3.lookAt(mesh2.position);
mesh1.add(mesh3);
左边的立方体是cube1和正确的立方体是CUBE2。圆柱体是cube1的子元素,应该看起来像cube2。所以如果我移动立方体1(在y位置),圆柱体应该旋转并且始终看着立方体2。
注视totate对网在空间中的矢量,在哪里添加。 – Martin
你有解决我的问题的方法吗? – webgl
mesh3.lookAt(mesh2.position.subVectors(mesh2.position,mesh1.position))?? – Martin