【转】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     }
复制代码

 

 

 

 

 

unity3d animation判断动画播放结束

  
  1. 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是动作结束

 

posted on   mimime  阅读(10499)  评论(0编辑  收藏  举报

编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用
< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示