我正在尝试对Object3D的lookAt方法进行动画处理,以对目标Vector3进行lookAt。我的Tween函数按照递增的scalarMultiplyVal(0.0-1.0)跟踪浮点,但是无论我尝试什么,Object3D都已经在补间开始之前已经在查看目标了。很奇怪。
TweenMax.to( this, 5, {scalarMultiplyVal:1, onUpdate:function(){
let targetVector = new THREE.Vector3( target.position.x, target.position.y, target.position.z ).multiplyScalar( scalarMultiplyVal );
console.log( targetVector ) // logs "animating" x,y,z values as expected
displayObject.lookAt( targetVector ); // does not animate. Already fulling looking at target.position ( scalarMultiplyVal = 1.0 )
}});
本质上,我试图使我的Object3D动画化/转向以周期性地查看新的vector3,但是相反,Object3D已经完全查看了target.position,而忽略了向量乘法。很奇怪。任何建议都会有很大帮助!
答案 0 :(得分:1)
我强烈建议您使用Quaternion.rotateTowards(),而不要使用Object3D.lookAt()
来制作动画。该方法基于Unity的Quaternion.RotateTowards。它在内部执行slerp,非常适合您的用例。以下示例演示了Quaternion.rotateTowards()
的用法。
https://threejs.org/examples/webgl_math_orientation_transform
three.js R104