养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

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

时间:2024-09-22 01:48:55

UnityAnimator之重置动画指定刷新某一动画。在Unity中,纛独编竿由于涌动Animator穰惩较瘁动画机控制动画播放,有时候需要重置动画,或者需要直接由某个动画未播放前就直接切换到某一个动画,这时候怎么做呢?具体使用到play和update函数,具体如下

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

工具/原料

Unity

Animator

方法/步骤

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

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

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

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

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

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

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

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

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

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

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

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

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

7、“AnimatorRese隋茚粟胫tAnimation”的脚本具体内容如下:usingSystem.Collections;usingSyst髫潋啜缅em.Collections.Generic;usingUnityEngine;publicclassAnimatorResetAnimation:MonoBehaviour{privateAnimatoranim;//设置动画机参数 //Usethisforinitialization voidStart(){//获取动画机anim=this.gameObject.GetComponent<Animator>(); } //Updateiscalledonceperframe voidUpdate(){//按下A键重置动画为Idleif(Input.GetKeyDown(KeyCode.A)){ResetAnimator("Idle");} }///<summary>///进行重置动画///</summary>///<paramname="AnimationName">该动画的名称</param>privatevoidResetAnimator(stringAnimationName){//设置动画机播放的动画名称//设置为最初的动画名称即重置动画//Update(0)即是刷新0层的动画机,默认新建的动画在0层anim.Play(AnimationName);anim.Update(0);}}

8、脚本编译正确,回到Unity,把脚本挂载到模型上,具体如下图

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

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

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

© 一点知识