【转】unity Animator 怎么判断一个动画播放结束
关于unity Animator 怎么判断一个动画播放结束这里有几种方法。希望对大家有帮助。还有其他办法的可以分享一下
第一种方法:在动画结束帧后面加个动画事件,调用下含这个变量的函数接口不是可以了?
如图,找到动画的inspector面板,在里面有个Events下拉条,下拉后在想要的帧的位置添加事件函数,函数名字记得在使用这个动画的物体的脚本里面写好,否则会报错
第二种方法:试试animator上面那个 exit time
第三种方法:
//获取动画层 0 指Base Layer.
AnimatorStateInfo stateinfo = animator.GetCurrentAnimatorStateInfo(0);
//如果正在播放walk动画.
if(stateinfo.IsName("Base Layer.walk"))
{
}
问:请问一下动画状态机怎么判断动画是否播完了?
答:
1. 脚本参考
AnimatorStateInfo.normalizedTime
float normalizedTime;
Description:
Normalized time of the State.
The integer part is the number of time a state has been looped. The fractional part is the % (0-1) of progress in the current loop.
2. 代码如下:

1 private Animator animator;
2 void Start()
3 {
4 animator = this.GetComponent<Animator>();
5 }
6
7 void Update()
8 {
9 AnimatorStateInfo info = animator.GetCurrentAnimatorStateInfo(0);
10 // 判断动画是否播放完成
11 if (info.normalizedTime >= 1.0f)
12 {
13 DoSomething();
14 }
15 }
- if (anim.IsPlaying("roar") && anim["roar"].normalizedTime >= 1)
bool IsAnimationPlaying(GameObject objWithAnimation,string animationName)
{
return objWithAnimation.animation.IsPlaying(animationName)&&objWithAnimation.animation[animationName].normalizedTime<<span>1.0f;
} }
判断某个动画是否播放完毕。
IEnumerator WaitForAnimationPlayOver(GameObject objWithAnimation,string animationName)
{
yield return new WaitForSeconds(objWithAnimation.animation[animationName].length);
} }
等待某个动画播放完成。
normalizedTime: 范围0 -- 1, 0是动作开始,1是动作结束
【转】unity Animator 怎么判断一个动画播放结束的更多相关文章
- 关于Unity中如何判断一个动画播放结束
方法一(强力推荐): 在动画结束帧或其他帧处加个动画事件,在播放到这一帧的时候会自动调用这个动画函数 如图,找到对应动画的inspector面板,在里面有个Events下拉条,下拉后在想要的帧的位置添 ...
- [UE4]判断UI动画播放方向
使用一个变量来记录播放的方向.
- 原生js判断css3动画过度(transition)结束 transitionend事件 以及关键帧keyframes动画结束(animation)回调函数 animationEnd 以及 css 过渡 transition无效
上图的 demo 主要讲的 是 css transition的过渡回调函数transitionend事件: css3 的时代,css3--动画 一切皆有可能: 传统的js 可以通过回调函数判断动画 ...
- Cocos2d-x动画播放(序列帧)
简介 Cocos2d-x中,动画的具体内容是依靠精灵显示出来的,为了显示动态图片,我们需要不停切换精灵显示的内容,通过把静态的精灵变为动画播放器从而实现动画效果.动画由帧组成,每一帧都是一个纹理,我们 ...
- 原生js判断css动画结束 css 动画结束的回调函数
原文:原生js判断css动画结束 css 动画结束的回调函数 css3 的时代,css3--动画 一切皆有可能: 传统的js 可以通过回调函数判断动画是否结束:即使是采用CSS技术生成动画效果,Jav ...
- Unity Animator动画状态机 深入理解(一)
接触Unity以来就已经有了Animator,Animation用的少,不过也大概理解他俩之间的一个区别于联系. 图中其实就是Animator和Animation之间的区别于联系了,啊!你肯定会告诉我 ...
- 关于Unity中如何立即中断动画然后重新开始播放
今天做一个FPS游戏的时候,用的是新版的动画系统,遇到一个问题. 就是用枪打敌人的时候,敌人会播放一个被击中的动画,但是如果在动画播放的过程中再射击敌人,敌人会先把第一个被击中的动画播放完,才再播放第 ...
- Unity 判断Animatior是否播放完
public Animator animator; void Start() { animator = this.GetComponent<Animator>(); } void Upda ...
- Unity的Write Defaults->从一个例子谈起
Write Defaults是什么? 在Unity的Animator中点击任何一个手动创建的State,我们就会在Inspector面板中看到下图的WriteDefaults选项 (图1,Animat ...
随机推荐
- IOS 线程描述
●什么是线程 ● 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程) ● 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行 ● 比如使用酷狗播放音乐.使用迅雷下载电影, ...
- EF写统计
EF的特性是,你from的第一个表为主表,接下来的所有表以左联或者内联或者交叉连接的方式去显示,不会出现右联, 在编写的时候,可以先确定个数据源,然后对这个数据源进行数据的统计, 例如SQL: -- ...
- 同余问题(一)——扩展欧几里得exgcd
前言 扩展欧几里得算法是一个很好的解决同余问题的算法,非常实用. 欧几里得算法 简介 欧几里得算法,又称辗转相除法. 主要用途 求最大公因数\(gcd\). 公式 \(gcd(a,b)=gcd(b,a ...
- RobotFramework:钉钉扫码登录UI自动化
背景: 遇到一个项目,使用的是钉钉扫码登录,一时间不知道该怎么下手了,还是先F12抓包看下都有什么数据传输吧. 分析: 先熟悉下钉钉扫码登录的逻辑,参考官文:https://open-doc.ding ...
- 使用canvas给图片添加水印
css部分 .clip { position: absolute; clip: rect(0 0 0 0); } html部分 <input type="file" id=& ...
- css属性选择器=,~=,^=,$=,*=,|=
http://www.w3school.com.cn/css/css_selector_attribute.asp =. property和value必须完全一致 : ~=.“约等于”?: ^=. 从 ...
- 对mysql快速批量修改,查重
更新UPDATE mytable SET myfield = CASE id WHEN 1 THEN 'value' WHEN 2 THEN 'value' WHEN 3 THEN 'value' E ...
- 去除select下拉框默认样式
去除select下拉框默认样式 select { /*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/ border: solid 1px #; /*很关键:将默认的select选 ...
- 1412: [ZJOI2009]狼和羊的故事
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4017 Solved: 2037[Submit][Status][Discuss] Descript ...
- 用正则表达式简单加密(C#为例)
") { List<" }; ") { foreach (char i in key) { keys[counter] = i.ToString(); counte ...