Uni2D 入门 -- Animation Clip 和 Animation API
转载 csdn kakashi8841 http://blog.csdn.net/kakashi8841/article/details/17599505
Animation Clip
一个animation clip是可重用的帧集合,它以给定的帧率显示sprite。每一帧包含的texture和可选事件。
可通过菜单栏“Uni2D > Create > Animation Clip”创建一个Animation Clip。
Animation Clip Inspector
Atlas 部分
| 设置 | 描述 |
| Use Atlas | 这个animation clip全局的atlas。使用这个去为animation clip的所有帧设置相同的atlas。留它为None则会在每个animation clip帧选择指定的atlas。 |
| Maximum Atlas Size | 全局atlas的最大大小。只有在全局atlas设置的时候这个才可见。 |
Clip header部分
| 设置 | 描述 |
| Animation clip preview | 鼠标悬停在纹理上面可以有个快速预览动画 |
| Frame Rate | animation clip的帧率,单位是FPS。如果你想要反转动画,你可以设置这个值为负数。 |
| Wrap Mode | 这个设置描述了animation clip以怎样的方式循环。和Unity内建的wrap mode很像:
|
Frame部分
| 设置 | 描述 |
| 点击这两个按钮分别是上移和下移本帧 | |
| 点击这两个按钮分别是在本帧上面和下面添加帧 | |
| 点击这个按钮删除本帧 | |
| Frame Texture | 这一帧使用的Texture。None也是合法的。 |
| Use Atlas | 这个atlas用于帧texture。只有在没指定了global atlas的时候,这个才是可见的。 |
| Trigger Event | 勾选这个复选框,如果你想要Uni2D能在这显示此帧的时候触发事件。更多信息请看Animation API部分。 |
| Frame Infos | 自定义本帧附加的信息。代表性的一个用法是这个可以作为事件数据。你能指定一个字符串,int,float或一个Unity对象。更多信息请看Animation API部分。 |
Action部分
| 设置 | 描述 |
| Add frame | 在Animation Clip结尾增加新的帧 |
| Apply | 点击应用设置。由于生产一个animation clip会花费一定时间,所以不要在每次一有改变的时候就应用。 |
| Revert | 取消你的改变 |
| Force Clip Regeneration | 重建atlas |
嵌入的播放器部分
在这个子窗口,你能预览动画,并使用更多的回放控制。
Animation API
Uni2D提供一些基础方法用于管理你的动画。这些animation API虽然是C#的,不过JavaScript也可以使用。
Uni2DSprite类有一个SpriteAnimation属性,它返回一个Uni2DSpriteAnimation对象的引用。这个对象控制sprite的animation。
| 属性/方法 | 描述 |
| bool playAutomatically | 决定动画是否在sprite awake之后自动播放 |
| Uni2DSprite Sprite(只读) | 这个对象正在渲染的sprite |
| Uni2DAnimationClip.WrapMode WrapMode | animation怎样循环(看Animation Clip的Inspector) |
| float FrameRate | animation clip的帧率。使用这个修改动画播放的方式。负数会反转动画 |
| int FrameCount | 当前animation包含了多少帧。这个数量取决于当前animation clip和当前的wrap mode。例如,一个10帧的animation clip,如果是Ping-Pong的wrap mode,它的frame count是18 |
| int FrameIndex | 当前绘制帧的索引 |
| Uni2DAnimationFrame Frame(只读) | 当前帧 |
| float Time | 当前animation的播放时间在0到animation的长度之间。 |
| float NormalizedTime | 当前动画播放时间,规范化在0到1之间。 |
| float Speed | 使用speed属性控制animation的播放速度。这个将让animation time走的更慢或更快,取决于你选择的参数。你能设置到0来冻结它,-1来往后播放等等。 |
| float Length(只读) | 当前播放的animation clip的长度 |
| string Name(只读) | 当前播放的animation clip的名字 |
| int CurrentClipIndex(只读) | 当前播放的animation clip的索引 |
| Uni2DAnimationClip Clip(只读) | 当前播放的animation clip |
| int ClipCount(只读) | 附加到sprite上有多少个animation clips |
| bool Paused | 如果设置为true则暂停animation。设置为false则恢复动画。 |
| void Pause() | 暂停动画 |
| void Resume() | 恢复动画 |
| void Play() | 从头播放当前选择的animation(默认选中的animation clip是在Sprite的Inspector的Start Clip Index值设置的) |
| void Play(string clipName) | 从头播放名字为clipName的clip。它必须已经通过手动或调用方法加到sprite上的,否则没有任何效果。 |
| void Play(int clipIndex) | 从头播放第clipIndex个clip。如果索引不对,则没有任何效果。 |
| int GetClipIndexByName(string clipName) | 返回名字为clipName的animation clip 的索引。如果没有这个名字的clip,则返回-1 |
| void Stop(bool resetToMainFrame=true) | 停止当前动画。如果可选参数设置为false(默认是true),则sprite不会显示它的主texture,而是保持当前动画帧的texture。 |
Animation Events
有两种类型的事件能被animation触发:end animation event和frame animation event
End Animation Event
自动在动画或者loop结束触发。
回调方法签名:void OnAnimationEndEvent(Uni2DAnimationEvent a_oAnimationEvent)
委托:Uni2DSpriteAnimation.onAnimationEndEvent
例子:sprite.spriteAnimation.onAnimationEndEvent += myCallbak;
Frame Animation Event
触发每一帧triggerEvent参数(Animation Clip的Inspector中)设置为true的。
回调方法签名:void OnAnimationFrameEvent(Uni2DAnimationFrameEvent a_oAnimationFrameEvent);
委托:Uni2DSpriteAnimation.onAnimationFrameEvent
例子:sprite.spriteAnimation.onAnimationFrame += myCallbak;
给出的Uni2DAnimationFrameEvent对象允许你访问触发事件的frame。值得注意的是,用户定义的帧信息能从这个event中访问到。
例如,a_oAnimationFrameEvent.frame.eventInfos.stringInfo
Uni2D 入门 -- Animation Clip 和 Animation API的更多相关文章
- Uni2D —— 入门(全)
Uni2D 入门 Uni2D 入门 -- Atlas Uni2D 入门 -- Animation Clip 和 Animation API Uni2D 入门 -- Skeletal Animation ...
- Uni2D Unity4.3 2D Skeletal Animation
http://www.cnblogs.com/zhaoqingqing/p/3602253.html 中文教程:参照 kakashi的CSDN博客 http://blog.csdn.net/kakas ...
- Android Animation学习(一) Property Animation原理介绍和API简介
Android Animation学习(一) Property Animation介绍 Android Animation Android framework提供了两种动画系统: property a ...
- Unity中有两种Animation Clip
http://blog.csdn.net/zzxiang1985/article/details/51291861 在Unity中,我们有两种方法创建Animation Clip. 一种(后面简称方法 ...
- Unity3D中通过Animator动画状态机获取任意animation clip的准确播放持续时长
Unity3d 4及之前的版本中动画的播放用的animation,可直接获取其播放持续长度.但5.x及以后的版本中都是用animator来播放动画了. https://docs.unity3d.com ...
- Split Animation Clip From FBX and Multiply Mode Sprite
Use Script To Creat 2D Animation Clip From Multiply Mode Sprite 很多时候美工拿过来的一张序列帧图片,我们需要转换成 Multiply M ...
- Uni2D入门
转载 http://blog.csdn.net/kakashi8841/article/details/17558059 开始 Uni2D增加了一些新的便利的特性给Unity,它们用于推动你2D工作流 ...
- (手冊)Animation 之 使用Animation View
观看游戏物体上的动画(Viewing Animations on a GameObject) Animation View 是与 Hierarchy View.Scene View和Inspector ...
- Android动画View Animation与Drawable Animation
Animations 一.Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转.缩放.淡入淡出等, ...
随机推荐
- CS229 1 .线性回归与特征归一化(feature scaling)
线性回归是一种回归分析技术,回归分析本质上就是一个函数估计的问题(函数估计包括参数估计和非参数估计),就是找出因变量和自变量之间的因果关系.回归分析的因变量是应该是连续变量,若因变量为离散变量,则问题 ...
- es6(12)--类,对象
//类,对象 { //基本定义和生成实例 class Parent{ //定义构造函数 constructor(name='QQQ'){ this.name=name; } } let v_paren ...
- linux web服务基础知识,dns
#web服务基础知识c/s 客户端/服务器b/s 浏览器/服务器 nginx > web server 服务端浏览器 > web client 客户端 #dns解析 ...
- MySQL 中的三中循环 while loop repeat 的基本用法
-- MySQL中的三中循环 while . loop .repeat 求 1-n 的和 -- 第一种 while 循环 -- 求 1-n 的和 /* while循环语法: while 条件 DO 循 ...
- express总结(一)
Express 框架核心特性: 可以设置中间件来响应 HTTP 请求. 定义了路由表用于执行不同的 HTTP 请求动作. 可以通过向模板传递参数来动态渲染 HTML 页面. express保留了Nod ...
- android 开发 写一个RecyclerView布局的聊天室,并且添加RecyclerView的点击事件
实现思维顺序: 1.首先我们需要准备2张.9的png图片(一张图片为左边聊天泡泡,一个图片为右边的聊天泡泡),可以使用draw9patch.bat工具制作,任何图片导入到drawable中. 2.需要 ...
- [转]asp+oracle分页
PageSize:每页显示的记录数.PageCount:根据用户设定好的PageSize和表中的总记录数,系统自动算出总页数.RecordCount:表中的总记录数.AbsolutePage:表示当前 ...
- 重识linux-压缩文件的原理
1 一种压缩原理 在系统中,系统使用byte作为最小单位来描述文件大小,但是计算机最小的单位是bit 一个byte=8bit,通常描述一个文件,计算机是使用0和1来存储的,所以系统工程师利用技术把为0 ...
- openx -书表添加字段
OpenX的版本是2.8.10.在数据表加完数据库之后,还不能读取和保存字段. OpenX使用scheme来 管理数据库表和字段, 修改数据库结构同时也要修改相关schema, 一个是etc/tabl ...
- java用Thread方式创建多线程
进程:一个正在执行的程序,每一个进程都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元.线程:进程中一个独立的控制单元.线程控制着进程的执行.一个进程中至少有一个线程. java VM中至少有 ...