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"的动画片段。

06-21 08:35