unity5 动画系统Mecanim事件快速入门 区分animation和animator不再混淆

本文主要是介绍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不再混淆的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/439726

相关文章

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置