一、模型设置:按照图中参数设置,模型就会得到一个Animation组件
注:FBX动画所在载体的组名不要改,修改动画就不会播放了
二、脚本控制
- 播放
public Animation animation;
public void PlayAnimation(string clip)
{
if(string.IsNullOrEmpty(clip))
{
//未指定动画Clip
animation.Play();
}
else
{
//指定动画Clip
animation.Play("");
}
}
- 复原
/// <summary>
/// 动画帧直接回原点式还原
/// </summary>
/// <param name="clip">动画片段名</param>
public void RestoreAnimation(string clip)
{
if (animation && string.IsNullOrEmpty(clip) == false && animation.GetClip(clip) != null)
{
//指定动画Clip
animation[clip].speed = 1;
animation.Play(clip);
animation[clip].time = 0;
animation[clip].enabled = true;
animation.Sample();
animation[clip].enabled = false;
}
else
{
//未指定动画Clip 复原所有动画片段
foreach (AnimationState state in animation)
{
state.speed = 1;
animation.Play(state.name);
state.time = 0;
state.enabled = true;
animation.Sample();
state.enabled = false;
}
}
}
/// <summary>
/// 倒放式还原
/// </summary>
/// <param name="clip">动画片段名</param>
public void RestoreAnimationWithProcess(string clip)
{
if (string.IsNullOrEmpty(clip))
{
//未指定动画Clip
foreach (AnimationState state in animation)
{
state.time = state.length;
state.speed = -1;
animation.Play(state.name);
}
}
else
{
//指定动画Clip
animation[clip].time = animation[clip].clip.length;
animation[clip].speed = -1;
animation.Play(clip);
}
}