本文主要是介绍unity5 动画系统Mecanim事件快速入门 区分animation和animator不再混淆,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
据说这个是4.6开始的,因为unity我中间很长时间没用过这个,现在重新再u3d5上认识下
首先认识下图标
上面单个的就是animation下面是animator
简单说就是animator是的animation的集合 创建animation的时候回自动创建animator,animator是管理器,通过它可以安排或者调用里面所有的animation
如果你没找到这两个窗口,那可以在window里面找
1. 建立动画animation
可以在Hierachy中选中需要建立动画的物体,然后打开animation窗口,随意点提示保存可以创建
这也会自动创建一个自动命名的animator文件(不同于4.6之前的,这里会多一个animator),为了管理最好改名字,不会影响其他的。
这里就不多说什么了,因为animation以前就有,主要提醒新手的就是animation窗口中有切换animation的按钮,比如一个animator包含了多个animation时会用到,如下图
2. 管理Animator中的animation
如果需要再追加多个animation(如下图),可以直接在project里面建立,然后拖动到物体上或者物体对应的Animator窗口,然后在Animation左上角选择你要跳转的(特别注意,不然调整的还是默认的)里面的Add Property是对同一个Animation添加参数,而不是添加新的Animation,当然会发现填不上同样的,切换后,选择Add Property可以添加同样的参数,然后红灯亮起,记录状态改参数就可以了。
(对于调节一开始并不可见的对象,没有setActive的可以先把钩打上,调节完了再去掉)
Animator 有两栏 一个是Layers 一个是Parameters,第二个里面可以设置trigger
就是点加号再点trigger,输入的名字就是等会要用到播放的名字,比如这里是playEnd
因为Animator如果不改动Parameters,默认是顺序播放的,如果有超过一个连线(就比如里面有至少两个Animation)那么第二根以后的线是带调节的,点击线,首先是has exit time,一般都是勾上的也就是会顺序播放,如果去掉勾就不自动播放了,是否播放就会取决于下面的Conditions,在这里可以填上刚刚名字playEnd,然后刚刚位置上的playEnd后面的控制器(就是那个圆的)就能控制是否播放这个节点了(必须运行时测试)
这样就可以构造循环,外部代码可以通过Animator.SetTrigger("name")来使用,
同样在animation时间轴上可以添加event,让脚本自动执行
2016.1.11更新
关于animation拖不到animator面板里面的motion里面
需要模型 rig里面 generic 才能将animation中分割好的clip放置在animator面板中,这样才有动画
多个trigger的问题,有时候切换的时候会产生重复,或者没反应的状况,这种因为settrigger有个问题就是如果你本身在这个animation,在次设置,那么将会一直触发这个trigger就像bool永远为true一样,这是一个bug
(trigger类似bool ,但是trigger使用结束后会自动设置为false,就相当于只触发一次,就像简化了bool而不用自己判断)
解决方案就是使用ResetTrigger,这个用来取消其他trigger被卡死的状况,这个设置了后能强制取消setrigger对应的动作(因为可以同时多个settrigger的情况)
这篇关于unity5 动画系统Mecanim事件快速入门 区分animation和animator不再混淆的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!