unity Animator 怎么unity3d 判断动画结束一个动画播放结束

还没有帐号? 赶紧
日志用户版块群组帖子
unity Animator 怎么判断一个动画播放结束
在线时间171小时
铜币237威望156贡献值1银元0好评度0
&&发表于: 02-26
关于unity Animator 怎么判断一个动画播放结束这里有几种方法。希望对大家有帮助。还有其他办法的可以分享一下&&&& 第一种方法:在动画结束帧后面加个动画事件,调用下含这个变量的函数接口不是可以了?&&&& 第二种方法:试试animator上面那个 exit time&&&& 第三种方法:&&&&&&&&&&&&&&&&&&&&&&&&&& //获取动画层 0 指Base Layer.&&&&&&&&&&&&&&&&&&&&&&&&&& AnimatorStateInfo stateinfo = animator.GetCurrentAnimatorStateInfo(0);&&&&&&&&&&&&&&&&&&&&&&&&&& //如果正在播放walk动画.&&&&&&&&&&&&&&&&&&&&&&&&&& if(stateinfo.IsName(&Base Layer.walk&))&&&&&&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&&& }
评价一下你浏览此帖子的感受
限200 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
您目前还是游客,请
&回复后跳转到最后一页
Powered by & Copyright Time now is:11-27 11:34 &
版权所有 Gzip enabled
Total 0.103173(s) query 7,后使用快捷导航没有帐号?
只需一步,快速开始
查看: 8721|回复: 21
转载--unity3d新版动画系统个人心得,迟到的圣诞节福利
TA的其他好贴
马上注册,加入CGJOY,让你轻松玩转CGJOY。
才可以下载或查看,没有帐号?
本文转载双喜老师博客
原文博客地址:
心血来潮要在圣诞节来个圣诞福利,其实也是因为最近积累了很多新动画系统的问题,别很多特效同胞们反复再问,手都快打字打出茧,干脆合并在一起在这统一回复一下,在这之前先说下在14期的时候其实是讲过很多关于动画系统的内容得,但是碰的巧开课不久就出了新版本的动画系统,并且势不可挡的要掀翻老版的animation模式,逐步完全替代他,所以现在也在这里补充说明下,弥补下之前14期的遗憾哈l&&Animator和Animation到底是什么那4.3版本以后很多人会发现当你创建动画的时候会直接生成一个相同文件名的animator,然后大家都迷茫了,那么我们来科普一下,xxxx.animator到底是神马。
14:11 上传
Animator的全称其实是Animator Centroller,意思就是动画控制器,顾名思义他的通途是用来控制你的动画文件的,而他大部分功能主要是用于设置角色上的行为,而特效用到的比分主要是当你给同一组文件的制作了多组动画时,他的作用会更为明确,通过里面的指令来调用动画文件animation,通俗易懂点说就相当于几个动画文件的小组长。所以当你创建动画文件时,必然会生成一个相对应的animator,无论是否需要需要控制你的animation,不要在去想说我就一个动画,能不能把animator去掉这件事了。再说起每次再给你个没有挂载动画文件的物件上拖动画,那必然生成一个新的animator,那如果你不小心移除了,再次拖过去又会生成一个新的animator文件,所以当你想要用之前的animator文件或是多个物件都想复用同一个动画的时候,我们可以这么做在物件下点击
14:11 上传
添加组件,直接搜出你想要的组件名,如图
14:11 上传
然后把animator拖到相应的位置上:
14:11 上传
那有人问,如果我的动画文件k的是好的,但是播放的时候就是有问题,播不出来怎么办,如果你实在是找不到原因的话,可以移除原来的animator,重新拖animation给物体,创建一个新的animator试试。
Animation依然还是用来装载动画的参数,我们k动画过程中的旋转位移等各种参数都是存储在动画文件里的,那么在这里有一点是需要注意的,那就是4.3以后的版本,独立的animation是无法k材质动画的,需要挂载在animator下才可以,具体在后面得问题里讲l&&那些参数都去哪儿了当我们打开动作面板,我们看到的是以下画面
14:11 上传
大部分人刚用新版的动画系统时都会跑来问哪些参数都不见了怎么调啊····我真心想问,上面明明有按钮您就算不认识也点了试试啊,打字问问题的时间够你点个十来遍的吧,好吧我又吐槽了,保持正能量继续说首先说说面板的切换,4.3以后animation的面板做了些小小的改动,他隐藏了所有可调整的参数,只有需要编辑的参数才会显示出来,变的更加直观并且方便了,并且添加了关键帧面板个曲线面板的切换,所以找不到曲线的同学们可以看上图的下方两个红框,切换就点这两个按钮好啦接下来我带大家找找藏起来的参数点击
14:11 上传
会直接弹出创建动画的窗口,当然你点编辑动画的地方也会弹,同志们可以任性一点试试,如果你创建好动画的话,则会出现可编辑属性
14:11 上传
点击小三角你可以在里面找到你想编辑的属性,不要问说为啥我点出来跟你的长得不一样····因为编辑的东西不一样,所以可编辑的属性也会有些不同啊亲们~~···········································································我是比较老实的办法的分割线···········································································那我做为一个懒人,老是这么找啊找的肯定的觉得麻烦的,所以我也找到了稍微省事点得方法首先,在时间轴上选好你的帧,这时候你会看到左边的小红点的图标红了,如下图
14:11 上传
这时候就代表他会记录你对物件的编辑的数值
比想做位移就拖动你的物件,想k透明就直接在颜色属性里调就好了,这时候他会直接生成两个关键帧
14:11 上传
你会看见它在首帧和你选的地方各生成一个关键帧,首帧的那个关键帧是你物件原本的参数,就是在你调之前的,而你选的那里的关键帧则是调整之后的参数,包括后面得常常被问到的uv动画也是可以这么做的
l&&循环在哪里关掉找到你的动画文件,动画都是默认勾上循环的,所以想要不循环就勾掉loop time,如下图
14:11 上传
l 如何调整动画的速度
14:11 上传
这是帧率,即每秒的帧数,我们可以通过调整里面的帧数来调整动画的速度,只是需要注意的是,你动画的总帧数是不变的,你调整帧率后自然会改变你动画的长度,这样讲有点乱,我们来举例:unity的动画系统默认新创建的动画是60帧每秒,那么如果我把帧数改成30,会发生什么情况呢,你们不妨自己试试,你会发现速度变慢了,一秒的动画变成了两秒,那么那么反过来,改成120帧,动画长度就变成0.5秒。这是怎么算得呢,你改变帧率的同时,你动画的总帧数是不变的,那原来60帧的动画,帧率是30,自然就变成了两秒,当帧率为120时,也就变成了0.5秒了。l&&材质动画为什么不显示材质动画为什么不显示的原因有很多,那排除掉自己误操作等等,主要的可能性有两个首先你要确认你的材质是否能够做材质动画,在属性栏里面调调看,能否调整uv,能不能调颜色透明等等。比如说mobile下的材质因为不支持顶点色,也是不能k的。接下来说,4.3以上的animation里材质动画是无效的我在前面讲过,在这里再单独拖出来讲,所以必须在有动画控制器animator的前提下创建动画,那我们直接导入unity的FBX模型是会自带一个动画文件animation,这时候就需要你remove掉你的animation,然后在CTRL+6创建动画就会自动生成一个animator。
l&&多个动画按顺序播放怎么玩有时候为了文件能够复用,我们会把一段很长的动画拆成多个动画文件,方便反复组合使用,那怎样去调整他的顺序呢,首先你要把动画文件都拖给同一个animator文件,如果找不到这个面板的可以找到属性栏里的控件,双击他
14:11 上传
接下来,我们可以看到如下图:
14:11 上传
为了方便大家看明白,我按顺序做了命名,橙色的是第一个拖进去生成animator的动画文件,一般情况下我们点击播放的时候会默认播放他,在animation面板里默认编辑的也是他,后面我会讲在动画面板里如何切换同一个animator下挂载的多个动画,回到正题继续说
说起按顺序播放,我们肯定是从第一个顺序往后编辑,找到你要编辑的接口,点右键会出现Make Transition,
14:11 上传
点他会在你鼠标上拉出一条小线然后选中下个播放的动画,依次每个做下来
14:11 上传
这样简单粗暴应该不难看懂吧,回到动画里就能够按照现在的顺序播放了。如果这时候你想编辑这些动画中得其中一个,直接打开你的动画面板在它的左上角第二排点开他就会展开挂载在当前animator上的所有动画,想改谁就选谁
14:11 上传
不知不觉码了好长,暂时先到这里,这些就是我到现在为止使用新版动画系统的个人心得,忍不住还是要吐个槽,为神马都喜欢张嘴问呢,没事戳一戳点一点,很多参数就试出来了,任性一点嘛,没必要小心翼翼到怕点错了软件就会坏了还是怎样啊!学习的过程需要探索啊~~~~
16.jpg (8.38 KB, 下载次数: 164)
14:11 上传
如何勾引别人关注你?
不错,又占了一个沙发!
如何勾引别人关注你?
囍子好厉害
如何勾引别人关注你?
如何勾引别人关注你?
大神-。-& & 抱大腿
如何勾引别人关注你?
如何勾引别人关注你?
{:7_282:}没事果断戳一戳
如何勾引别人关注你?
先顶后看{:7_283:}
如何勾引别人关注你?
大爱喜子。
如何勾引别人关注你?
好像又学到一点东西~{:7_288:}
如何勾引别人关注你?
Powered by4779人阅读
游戏开发及技术(62)
// Get a reference to the Animator Controller:
UnityEditorInternal.AnimatorController ac = GetComponent&Animator&().runtimeAnimatorController as UnityEditorInternal.AnimatorC
// Number of layers:
int layerCount = ac.GetLayerCount();
Debug.Log(string.Format(&Layer Count: {0}&, layerCount));
// Names of each layer:
for (int layer = 0; layer & layerC layer++) {
Debug.Log(string.Format(&Layer {0}: {1}&, layer, ac.GetLayerName(layer)));
// States on layer 0:
UnityEditorInternal.StateMachine sm = ac.GetLayerStateMachine(0);
List&UnityEditorInternal.State& states = sm.statesR // Also: sm.states
foreach (UnityEditorInternal.State s in states) {
Debug.Log(string.Format(&State: {0}&, s.GetUniqueName()));
有一些方法在新的版本(4.6)中已经过期,但基本思路不变,先获取AnimatorController,然后获取Layer,根据Layer获取StateMachine,之后获取State的实例。
原帖地址:/questions/418854/getting-a-list-of-mecanim-states-in-animator.html
吐槽一下unity的API开发人员,居然给Animator.runtimeAnimatorController一个抽象的基类返回值,至少也搞一个能够返回AnimatorController的方法。还需要使用程序员强转一下,简直不人道。不知道的人,根本不知道如何用,而且貌似官方API文档也没有很好的说明。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:618644次
积分:8131
积分:8131
排名:第1819名
原创:237篇
评论:345条
(1)(2)(2)(2)(3)(2)(2)(3)(2)(1)(2)(2)(1)(2)(4)(5)(2)(1)(1)(1)(1)(3)(1)(1)(1)(1)(1)(3)(1)(1)(2)(2)(2)(3)(3)(3)(3)(4)(1)(8)(8)(5)(5)(9)(8)(5)(6)(5)(10)(7)(17)(25)(16)(11)(8)(2)(7)animator 判断是否在播放动作 - Unity3d技术 - 泰课在线 - 国内专业的Unity在线学习平台|Unity3d培训|Unity教程|Unity教程 Unreal 虚幻 AR|移动开发|美术CG|UI平面设计|前端开发 - Powered By EduSoho
animator 判断是否在播放动作
Unity3d animator 判断是否在播放动作是如何实现的,具体该怎样去操作,
//获取动画层 0 指Base Layer.
AnimatorStateInfo stateinfo = animator.GetCurrentAnimatorStateInfo(0);
//如果正在播放walk动画.
if(stateinfo.IsName("Base Layer.walk"))
你还没有登录,请先或!
Unity3D技术交流1群
泰课Unity3D公开课
工作时间:9:00 - 18:30
北京客服:010 -
广州客服:020 -

我要回帖

更多关于 unity 判断声音结束 的文章

 

随机推荐