? ? /**
? ? ?*
? ? ?* @param {模型} object3d
? ? ?* @param {转换值} transform
? ? ?* @param {时间} duration
? ? ?* @param {完成回调函数} callback
? ? ?* @param {模式} easing
? ? ?*/
? ? transformObject(object3d, transform, duration, callback, easing) {
? ? ? if(!object3d){
? ? ? ? return;
? ? ? }
? // 创建一个新的Tween对象
? let tween = new TWEEN.Tween(object3d).to(transform, duration)
? ? .onUpdate((r,n)=> {
? ? ? if(transform.position) {
? ? ? ?// 模型变化后的处理
? ? ? }
? ? ? if(transform.scale) {
? ? ? ?
? ? ? }
? ? ? if(transform.rotation) {
? ? ? ?
? ? ? }
? ? })
? ? .easing(easing || TWEEN.Easing.Quadratic.InOut)
? ? .onComplete(callback)
? ? .start();
}
? ?
在更新动画中加入动画刷新。
?render(time) {
? ? ? // 每一帧都需要更新控制器和渲染器
? ? ? this.controls.update();
? ? ? this.renderer.render(this.scene, this.camera);
? ? ? if(isUpdateTween){
? ? ? TWEEN.update(time);
? ? ? }
? ? ? // 请求下一帧动画
? ? ? this.animationId = requestAnimationFrame(this.render);
? ? },