zoukankan      html  css  js  c++  java
  • 【转】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是动作结束

  • 相关阅读:
    python配置文件INI/TOML/YAML/ENV的区别
    Python中用requests处理cookies的3种方法
    【转】Jenkins报错ModuleNotFoundError: No module named fileName解决办法
    Python中用requests处理cookies的3种方法
    python – 为每个列表元素添加引号
    Python巧用正则表达式,完成接口参数替换
    Python中用OpenPyXL处理Excel表格
    LVM创建及管理
    springcloud --Nacos安装
    springcloud 启动错误
  • 原文地址:https://www.cnblogs.com/mimime/p/6599798.html
Copyright © 2011-2022 走看看