Unity Animator 之 重置动画指定刷新某一动画
1、打开Unity,新建一个空工程,具体如下图

2、向工程中导入某个带多个动画的模型,具体如下图

3、新建一个动画机Animator,把模型的动画添加进新建的Animator,并且添加导线,最好每个导线的都勾上 Has Exit Time 便于演示,具体如下图


4、把模型添加到场景中,并把之前新建的Animator添加到模型上,具体如下图

5、在工程中新建一个脚本“AnimatorResetAnimation”,双击打开进行脚本编辑,具体如下图

6、“AnimatorResetAnimation”的脚本具体代码和代码说明如下图

7、“AnimatorResetAnimation”的脚本具体内容如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AnimatorResetAnimation : MonoBehaviour {
private Animator anim; // 设置动画机参数
// Use this for initialization
void Start () {
// 获取动画机
anim = this.gameObject.GetComponent<Animator>();
}
// Update is called once per frame
void Update () {
// 按下 A 键 重置动画为 Idle
if (Input.GetKeyDown(KeyCode.A)) {
ResetAnimator("Idle");
}
}
/// <summary>
/// 进行重置动画
/// </summary>
/// <param name="AnimationName">该动画的名称</param>
private void ResetAnimator(string AnimationName)
{
// 1、设置动画机播放的动画名称
// 2、设置为最初的动画名称即重置动画
// 3、Update(0)即是刷新 0 层的 动画机,默认新建的动画在 0 层
anim.Play(AnimationName);
anim.Update(0);
}
}
8、脚本编译正确,回到Unity,把脚本挂载到模型上,具体如下图

9、运行场景,在动画运行到某个动画途中,按下 A 键,动画立即被重置切回来(其中不会等到动画播完才切换,是立即切回来),具体如下图
