Unity Animator 之 重置动画指定刷新某一动画

2025-11-04 05:10:16

1、打开Unity,新建一个空工程,具体如下图

Unity Animator 之 重置动画指定刷新某一动画

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

Unity Animator 之 重置动画指定刷新某一动画

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

Unity Animator 之 重置动画指定刷新某一动画

Unity Animator 之 重置动画指定刷新某一动画

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

Unity Animator 之 重置动画指定刷新某一动画

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

Unity Animator 之 重置动画指定刷新某一动画

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

Unity Animator 之 重置动画指定刷新某一动画

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,把脚本挂载到模型上,具体如下图

Unity Animator 之 重置动画指定刷新某一动画

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

Unity Animator 之 重置动画指定刷新某一动画

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢