AnimationAction.syncWith() 方法用于将另一个 AnimationAction 实例同步到当前的动画。这个方法会对两个动画实例的时间和权重进行相应地同步。
AnimationAction.syncWith( action: AnimationAction ) : AnimationAction
action:需要同步的 AnimationAction实例对象。返回当前 AnimationAction 实例对象。
同步两个动画 "animation1" 和 "animation2":
const mixer = new THREE.AnimationMixer( mesh );
const animation1 = mixer.clipAction( animationClip1 );
animation1.play();
const animation2 = mixer.clipAction( animationClip2 );
animation2.startAt( -1 ).play();
animation1.syncWith( animation2 );
在这个例子中,我们创建了一个 AnimationMixer 对象,并分别创建了两个 AnimationAction 实例对象:animation1 和 animation2。我们使用 play() 方法播放了 animation1 和 startAt() 方法来设置 animation2 的起始时间,并使用 play() 方法播放了 animation2。最后,我们通过调用 animation1.syncWith(animation2) 方法将 animation2 同步到了 animation1 。
AnimationAction.syncWith() 方法只对两个 AnimationAction 实例对象进行同步,不会对当前的 AnimationMixer 实例对象进行任何更改。AnimationAction.syncWith() 方法后,两个动画的时间和权重会相应地同步。如果您需要更精细的控制,请考虑手动调整这些值。