ThreeJS: 绕 y 轴旋转以面向相机

8
我希望我的物体在Y轴上旋转,始终面向相机(就像人在原地转圈一样),随着相机的移动而改变方向。
目前我尝试过以下方法:
var render = function() {
    animationFrameId = window.requestAnimationFrame( render);

    obj.lookAt(camera.position);

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

但我缺少一些简单的数学或三角函数,因为当我旋转时,它最终会“跳跃”,物体似乎面对错误方向。

1个回答

24

如果您使用 .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 ) );

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接