如何用相机three.js旋转对象

时间:2017-01-24 23:20:31

标签: javascript camera three.js rotation

嗨我正在努力跟随相机,所以我可以实现步枪取景器的效果。我正在使用OrbitControl。当我检查camera.rotation.y时,它只显示范围是从-PI / 2到PI / 2,而我可以将相机旋转360度。我无法理解它,请帮忙!

到目前为止,我到了那里(它只是我代码的一部分):

    pivot = new THREE.Object3D();
    pivot.add(viewfinder);//adding viewfinder as a child of pivot
    scene.add( pivot );

以及稍后

    pivot.rotation.y =  camera.rotation.y; 

这允许旋转我的取景器但是由于某种原因它完全被Pi / 2移位所以我从当前的相机位置扣除它并且我有这个:

   pivot.rotation.y =  (camera.rotation.y - (Math.PI/2)) ;

这使我可以用相机旋转取景器,但只能在180度的范围内。如何旋转全360? 请帮我。 Thak You。

1 个答案:

答案 0 :(得分:0)

我想你想让网格总是面向你的相机,对吧?您可以使用相机矩阵来设置网格旋转mesh.rotation.setRotationFromMatrix(camera.matrix),但是如果您的网格具有父实体,请小心。或者您可以使用lookAt()函数mesh.lookAt(camera.position),或者正常工作。