关于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. 1 private Animator animator;
  2. 2 void Start()
  3. 3 {
  4. 4 animator = this.GetComponent<Animator>();
  5. 5 }
  6. 6
  7. 7 void Update()
  8. 8 {
  9. 9 AnimatorStateInfo info = animator.GetCurrentAnimatorStateInfo(0);
  10. 10 // 判断动画是否播放完成
  11. 11 if (info.normalizedTime >= 1.0f)
  12. 12 {
  13. 13 DoSomething();
  14. 14 }
  15. 15 }

unity3d animation判断动画播放结束

  1. if (anim.IsPlaying("roar") && anim["roar"].normalizedTime >= 1)
  1. bool IsAnimationPlaying(GameObject objWithAnimation,string animationName)
  2.  
  3. {  
  4.  
  5. return objWithAnimation.animation.IsPlaying(animationName)&&objWithAnimation.animation[animationName].normalizedTime<<span>1.0f;
  6. } }

判断某个动画是否播放完毕。

  1. IEnumerator WaitForAnimationPlayOver(GameObject objWithAnimation,string animationName)
  2.  
  3. {  
  4.  
  5. yield return new WaitForSeconds(objWithAnimation.animation[animationName].length);
  6. } }

等待某个动画播放完成。

normalizedTime: 范围0 -- 1,  0是动作开始,1是动作结束

【转】unity Animator 怎么判断一个动画播放结束的更多相关文章

  1. 关于Unity中如何判断一个动画播放结束

    方法一(强力推荐): 在动画结束帧或其他帧处加个动画事件,在播放到这一帧的时候会自动调用这个动画函数 如图,找到对应动画的inspector面板,在里面有个Events下拉条,下拉后在想要的帧的位置添 ...

  2. [UE4]判断UI动画播放方向

    使用一个变量来记录播放的方向.

  3. 原生js判断css3动画过度(transition)结束 transitionend事件 以及关键帧keyframes动画结束(animation)回调函数 animationEnd 以及 css 过渡 transition无效

      上图的 demo 主要讲的 是 css transition的过渡回调函数transitionend事件: css3 的时代,css3--动画 一切皆有可能: 传统的js 可以通过回调函数判断动画 ...

  4. Cocos2d-x动画播放(序列帧)

    简介 Cocos2d-x中,动画的具体内容是依靠精灵显示出来的,为了显示动态图片,我们需要不停切换精灵显示的内容,通过把静态的精灵变为动画播放器从而实现动画效果.动画由帧组成,每一帧都是一个纹理,我们 ...

  5. 原生js判断css动画结束 css 动画结束的回调函数

    原文:原生js判断css动画结束 css 动画结束的回调函数 css3 的时代,css3--动画 一切皆有可能: 传统的js 可以通过回调函数判断动画是否结束:即使是采用CSS技术生成动画效果,Jav ...

  6. Unity Animator动画状态机 深入理解(一)

    接触Unity以来就已经有了Animator,Animation用的少,不过也大概理解他俩之间的一个区别于联系. 图中其实就是Animator和Animation之间的区别于联系了,啊!你肯定会告诉我 ...

  7. 关于Unity中如何立即中断动画然后重新开始播放

    今天做一个FPS游戏的时候,用的是新版的动画系统,遇到一个问题. 就是用枪打敌人的时候,敌人会播放一个被击中的动画,但是如果在动画播放的过程中再射击敌人,敌人会先把第一个被击中的动画播放完,才再播放第 ...

  8. Unity 判断Animatior是否播放完

    public Animator animator; void Start() { animator = this.GetComponent<Animator>(); } void Upda ...

  9. Unity的Write Defaults->从一个例子谈起

    Write Defaults是什么? 在Unity的Animator中点击任何一个手动创建的State,我们就会在Inspector面板中看到下图的WriteDefaults选项 (图1,Animat ...

随机推荐

  1. IOS DatePicker 和 UIBarButtonItem 常用属性

    - (void)viewDidLoad { [super viewDidLoad]; // // self.inputTextField.inputView = [[UISwitch alloc ] ...

  2. 【BZOJ2002】[HNOI2010] 弹飞绵羊(大力分块)

    点此看题面 大致题意: 有\(n\)个弹力装置,当到达第\(i\)个装置时,会被弹到第\(i+k_i\)个装置,若不存在第\(i+k_i\)个装置,就会被弹飞.有两种操作,一种操作是将\(k_x\)改 ...

  3. Mybatis-连接池与事务

    Mybatis 的连接池技术 Mybatis 将它自己的数据源分为三类: UNPOOLED 不使用连接池的数据源 POOLED 使用连接池的数据源 JNDI 使用 JNDI 实现的数据源 Mybati ...

  4. 3219: 求最高同学位置—C语言版

    3219: 求最高同学位置—C语言版 时间限制: 1 Sec  内存限制: 128 MB提交: 207  解决: 115[提交][状态][讨论版][命题人:smallgyy] 题目描述 设一维数组存放 ...

  5. python读取excel中的数据

    import numpy as np import matplotlib.pyplot as plt import pandas as pd #df = pd.read_excel('/Users/N ...

  6. MySQL优化器功能开关optimizer_switch

    MySQL 8.0新增特性 use_invisible_indexes:是否使用不可见索引,MySQL 8.0新增可以创建invisible索引,这一开关控制优化器是否使用invisible索引,on ...

  7. SpringBoot学习2:springboot整合servlet

    整合方式1:通过注解扫描完成 Servlet 组件的注册 1.编写servlet package com.bjsxt.servlet; import javax.servlet.ServletExce ...

  8. macbook pro开机键盘键盘和触摸板没反应问题

    今天遇到开机键盘和触摸板没反应的问题,打电话给售后,他叫我插一个usb外置键盘,开机时按shift+alt+control+电源键开机,突然发现可以了,这bug我也是醉了

  9. nodejs 实现图片上传

    1.首先在目录下的运行cmd,执行以下命令 npm install multer; 2.在router下新建upload.js let express = require('express');let ...

  10. Android驱动开发5-7总结

    Android深度探索5-7章总结 介绍了S3C6410开发板的功能,开发板的不同主要是在烧录嵌入式系统的方式不同,以及如何在此开发板上安装Android.紧接着学到介绍到如何在多种平台,使用多种方式 ...