zoukankan      html  css  js  c++  java
  • 关于Unity中如何判断一个动画播放结束

    方法一(强力推荐):

    在动画结束帧或其他帧处加个动画事件,在播放到这一帧的时候会自动调用这个动画函数

    如图,找到对应动画的inspector面板,在里面有个Events下拉条,下拉后在想要的帧的位置添加事件函数,函数名字自己取,并且记得在使用这个动画的物体下面挂载的脚本里面写好这个函数的实现代码,object关联这个写了事件函数的脚本。

    如:Function:attackhalfevent

      Object:enemy.cs

      在敌人节点下的enemy脚本里面添加函数

    public void attackhalfevent()
    {
         Debug.Log("event message: attck half!");
    }

    方法二(道听途说):

    试试animator上面那个 exit time

    方法三(有时有用):

    使用动画状态的归一化时间判断,注意,这个方法一般是用来做动画的切换,不能写一些逻辑语句在动画播放完成后执行,因为我测试过,一个动画播放完成后,会调用二十几次if里面的语句。

        void Update () {
            AnimatorStateInfo info = anim.GetCurrentAnimatorStateInfo(0);
             // 判断动画是否播放完成
            if (info.normalizedTime >= 1.0f && info.IsName("Base Layer.hurt"))//当前hurt动画是否播放完成,完成调用下面语句
             {
                 this.anim.SetInteger("anim_state", 0);//设置参数anim_state的值为0,我们之前也设置了当它等于0的时候会跳转
             } 
      }
  • 相关阅读:
    MySQL
    Python练习-基于socket的FTPServer
    python练习-Socket实现远程cmd命令
    python概念-Socket到底有多骚
    Python练习-天已经亮了计算器也终于完成了
    python模块-logging的智商上限
    python正则表达式-re模块的爱恨情仇
    Python练习-os模块练习-还算是那么回事儿
    Python练习-time模块
    Python练习-跨目录调用模块
  • 原文地址:https://www.cnblogs.com/HangZhe/p/7412616.html
Copyright © 2011-2022 走看看