1、打开Unity,新建一个空工程,具体如下图
2、向工程中导入某个带多个动画的模型,具体如下图
3、新建一个动画机Animator,把喋碾翡疼模型的动画添加进新建的Animator,并且添加导线,最好每个导线的都勾上 Has Exit Time 便于演示,具体如下图
4、把模型添加到场景中,并把之前新建的Animator添加到模型上,具体如下图
5、在工程中新建一个脚本“AnimatorResetAnimation”,双击打开进行脚本编辑,具体如下图
6、“AnimatorResetAnimation”的脚本具体代码和代码说明如下图
7、“AnimatorResetAnimation”的脚本具体内容如下:using System.Collections;using Syst髫潋啜缅em.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 键,动画立即被重置切回来(其中不会等到动画播完才切换,是立即切回来),具体如下图