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虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

Mybatis-Plus 3.5.12 分页拦截器消失的问题及快速解决方法

《Mybatis-Plus3.5.12分页拦截器消失的问题及快速解决方法》作为Java开发者,我们都爱用Mybatis-Plus简化CRUD操作,尤其是它的分页功能,几行代码就能搞定复杂的分页查询... 目录一、问题场景:分页拦截器突然 “失踪”二、问题根源:依赖拆分惹的祸三、解决办法:添加扩展依赖四、分页

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c