BufferGeometry
Object3D
Raycaster
Camera
CubeCamera
PerspectiveCamera
OrthographicCamera
StereoCamera
Clock
Curve
CurvePath
Path
Shape
ShapePath
ArrowHelper
AxesHelper
BoxHelper
Box3Helper
CameraHelper
DirectionalLightHelper
GridHelper
PolarGridHelper
HemisphereLightHelper
PlaneHelper
PointLightHelper
SkeletonHelper
SpotLightHelper
Light
PointLight
RectAreaLight
SpotLight
DirectionalLight
HemisphereLight
LightShadow
PointLightShadow
AnimationLoader
AudioLoader
BufferGeometryLoader
CompressedTextureLoader
CubeTextureLoader
DataTextureLoader
FileLoader
ImageBitmapLoader
ImageLoader
Loader
LoaderUtils
MaterialLoader
ObjectLoader
TextureLoader
LoadingManager
Material
Box2
Box3
Color
Cylindrical
Euler
Frustum
Interpolant
Line3
MathUtils
Matrix3
Matrix4
Plane
Quaternion
AnimationAction
AnimationClip
AnimationMixer
AnimationObjectGroup
AnimationUtils
keyframeTrack
PropertyBinding
PropertyMixer
BooleanKeyframeTrack
QuaternionKeyframeTrack
StringKeyframeTrack
Audio
AudioAnalyser
AudioContext
AudioListener
PositionalAudio

AnimationObjectGroup.uncache()

uncache() 方法从缓存中删除动画对象组的预计算数据。这将强制更新动画。

语法

AnimationObjectGroup.uncache();

参数

uncache() 方法不接受任何参数。

返回值

uncache() 方法没有返回值。

描述

uncache() 方法从动画对象组的缓存中删除预计算数据,因此在下一次播放动画时,将重新计算动画。

通常,当你添加或删除一个动画对象时,你需要调用 uncache() 方法以确保动画正确计算。如果你不这样做,你的动画可能会出现问题,例如会跳过某些帧或出现奇怪的缓动效果。

示例

以下示例演示如何使用 uncache() 方法:

// 创建动画对象组
const group = new THREE.AnimationObjectGroup();

// 缓存数据
group.uncache();

// 添加动画对象
const mesh1 = new THREE.Mesh(geometry1, material1);
const mesh2 = new THREE.Mesh(geometry2, material2);
group.add(mesh1, mesh2);

// 播放动画
const mixer = new THREE.AnimationMixer(scene);
const animation = mixer.clipAction(clip, group);
animation.play();

在示例中,我们首先使用 uncache() 方法从动画对象组的缓存中删除预计算数据,因此动画将在下一次播放时重新计算。然后我们添加两个动画对象,并使用 clipAction()play() 方法播放动画。

参考