ThreeJS:在y轴上旋转以面向相机

时间:2016-03-24 13:54:39

标签: javascript three.js

当相机移动时,我希望我的物体在Y轴上旋转以始终面向相机(就好像人在转动圆圈一样)。

这是我到目前为止所尝试的:

var render = function() {
    animationFrameId = window.requestAnimationFrame( render);

    obj.lookAt(camera.position);

    obj.rotation.set(0, obj.rotation.y, 0);
}

但是我缺少一些简单的数学或触发功能,因为当我旋转时,它最终会跳过'并且该对象似乎面向错误的方向

1 个答案:

答案 0 :(得分:8)

如果您使用.lookAt对象在所有方向上看相机,您必须像这样计算相机和网格之间Y平面上的角度。

var render = function() {

    animationFrameId = window.requestAnimationFrame( render);    

    obj.rotation.y = Math.atan2( ( camera.position.x - obj.position.x ), ( camera.position.z - obj.position.z ) );

}