代码先锋网 代码片段及技术文章聚合

Unity的Animator动画结束取消循环

技术标签: game学习  unity  动画

设置Animator动画时如果是从Entry一路连接状态到Exit,会从Exit自动回到Entry循环执行。为了取消循环,查了一些办法。

首先对于如何停下,可以采取
1 禁用控制器
2 控制器的speed设为0
3 timescale设为0
4 最后一个状态不连接到Exit

其次,对于在哪里停下,很多地方给出的是这样的代码——

stateInfo = animator.GetCurrentAnimatorStateInfo(0);
if(stateInfo.normalizedTime >=1.0f)
	//todo balabala

这种方法是针对只有一个状态的吧?!
如果是多个状态,需要在最后一个状态结束后停下,则需要判断条件里额外加上:

stateInfo.IsName("最后一个状态名") && 

但是但是,我真正想说的是,这条件你们真的有true的时候么?normalizedTime是一个状态的标准化时间,范围0到1,但打印看看就发现永远不会到达1,所以if条件根本进不去啊。至少写成1 - stateInfo.normalizedTime < 0.01 还凑合吧?!
附,如果stateInfo没变化,肯定是写到Start这种只执行一次的函数里了,什么叫get current啊……

版权声明:本文为weixin_46394264原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46394264/article/details/123826022

智能推荐

Unity3D Animator 跳过动画

游戏界面中,比如在获得奖励的时候会先有一个比较绚丽的动画播放,但是看多了就疲劳总想跳过。 可以用 Animator.Play(string stateName, [Internal.DefaultValue("-1")] int layer, [Internal.DefaultValue("float.NegativeInfinity")] float no...

Unity3d Animator 动画倒放

首先:百度到的Animator倒放方法可以用(https://jingyan.baidu.com/article/d713063593f99f13fdf475e1.html)。   但是 该方法需要在controller中添加参数,如果项目中有很多动画需要倒播,这么做出错率很高,重复劳动也很令人焦虑。   在网上一番搜索找到这位仁兄的方法:https://blog.csdn.n...

Unity动画系统Animator动态添加事件

将代码绑定到动画对象上即可...

猜你喜欢

RecycleView的Item Animator动画

RecyclerView能够通过mRecyclerView.setItemAnimator(ItemAnimator animator)设置添加、删除、移动、改变的动画效果。 RecyclerView提供了默认的ItemAnimator实现类:DefaultItemAnimator。如果没有特殊的需求,默认使用这个动画即可。 下面就添加一下删除和添加Item的动作。在Adapter里面添加方法。 ...

Animator动画的XML实现

animator标签的字段 animator标签 说明 android:duration 每次动画播放的时长 android:valueFrom 初始动画值,取值范围为float、int和color这三种类型的值 android:valueTo 动画结束值,取值范围同样是int float color三种类型的值 android:startOffset 动画**延时,对应代码中的startDela...

Unity 通过Animator获取动画长度 和 监听播放完成的代码

通过Animator.runtimeAnimatorController.animationClips 可以获取所有的动画片段 ,再通过遍历 判断动画名称即可取得对应动画片段的长度了 要判断动画是否播放完成 则可以通过动画层信息,stateInfo.normalizedTime 可以获得动画播放的状态 1表示播放到最后一帧,0表示第一帧 这里要注意的是,stateInfo 获取要放在update里...

【Unity3D】Animation 和 Animator 动画重置到起始帧的方法

在 Unity 动画系统中,动画播放完毕默认是停留在最后一帧的,当我们重置场景的时候,需要将动画重置到第一帧。而 Animation 和 Animator 组件中并没有 Reset 方法。本文主要提供了关于 Animation 和 Animator 动画重置的解决方法。 Animator 重置到起始帧 通过 Animator.Play 和 Animator.Update 播放来进行控制。 Anim...

为Unity3D的Animator动画状态增加播放完毕回调

利用AnimatorStateInfo信息来处理当前的动画信息。 目前没出现什么bug,回调也相对精准。 使用方式:  源码:  ...