AnimationClip介绍
在Unity中,AnimationClip是一种用于保存动画片段的资源类型。AnimationClip可以包含一个或多个动画片段,每个动画片段包含一个或多个关键帧。通过对AnimationClip进行编辑,可以创建、修改和管理动画片段以及它们的关键帧,从而实现角色、物体或其他游戏元素的动画效果。
AnimationClip方法
AnimationClip中常用的方法包括:
SetCurve
public void SetCurve(string relativePath, Type type, string propertyName, AnimationCurve curve);
为指定的对象的属性添加动画曲线。relativePath参数指定了要添加动画曲线的对象的相对路径,type参数指定了对象类型,propertyName参数指定了要添加动画曲线的属性名称,curve参数指定了要添加的动画曲线。
EnsureQuaternionContinuity
public void EnsureQuaternionContinuity();
将AnimationClip中所有旋转关键帧的旋转值转换为四元数,并确保所有旋转值在连续的时间段内都是连续的。
SampleAnimation
public void SampleAnimation(GameObject go, float time);
在指定的时间点对指定的GameObject对象进行采样,获取该时间点上的所有动画片段的值,并将这些值应用到指定的GameObject对象上。
AnimationClip举例子
以下是一些常用的AnimationClip代码示例:
创建AnimationClip
AnimationClip clip = new AnimationClip();
clip.name = "MyAnimationClip";
创建一个名为"MyAnimationClip"的AnimationClip对象。
添加关键帧
AnimationCurve curve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
clip.SetCurve("MyGameObject", typeof(Transform), "localPosition.x", curve);
为名为"MyGameObject"的对象的localPosition.x属性添加一个EaseInOut曲线,以实现平滑的位置变化。
应用动画
Animation animation = GetComponent<Animation>();
animation.AddClip(clip, "MyAnimation");
animation.Play("MyAnimation");
将创建的AnimationClip对象添加到Animation组件中,并播放名为"MyAnimation"的动画片段。