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的时候会跳转
             } 
      }
  • 相关阅读:
    matplotlib数据可视化之柱形图
    xpath排坑记
    Leetcode 100. 相同的树
    Leetcode 173. 二叉搜索树迭代器
    Leetcode 199. 二叉树的右视图
    Leetcode 102. 二叉树的层次遍历
    Leetcode 96. 不同的二叉搜索树
    Leetcode 700. 二叉搜索树中的搜索
    Leetcode 2. Add Two Numbers
    Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
  • 原文地址:https://www.cnblogs.com/HangZhe/p/7412616.html
Copyright © 2011-2022 走看看