转载 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很像:

  • Loop:从第一帧播放到最后一帧,然后回到第一帧继续播放。
  • Ping-Pong:从第一帧播放到最后一帧,然后从最后一帧播回最后一帧。
  • Once:只播放一次,并停在一帧,它是主帧,不一定是动画的第一帧。
  • Clamp Forever:从第一帧播放到最后一帧,并停在最后一帧。

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的更多相关文章

  1. Uni2D —— 入门(全)

    Uni2D 入门 Uni2D 入门 -- Atlas Uni2D 入门 -- Animation Clip 和 Animation API Uni2D 入门 -- Skeletal Animation ...

  2. Uni2D Unity4.3 2D Skeletal Animation

    http://www.cnblogs.com/zhaoqingqing/p/3602253.html 中文教程:参照 kakashi的CSDN博客 http://blog.csdn.net/kakas ...

  3. Android Animation学习(一) Property Animation原理介绍和API简介

    Android Animation学习(一) Property Animation介绍 Android Animation Android framework提供了两种动画系统: property a ...

  4. Unity中有两种Animation Clip

    http://blog.csdn.net/zzxiang1985/article/details/51291861 在Unity中,我们有两种方法创建Animation Clip. 一种(后面简称方法 ...

  5. Unity3D中通过Animator动画状态机获取任意animation clip的准确播放持续时长

    Unity3d 4及之前的版本中动画的播放用的animation,可直接获取其播放持续长度.但5.x及以后的版本中都是用animator来播放动画了. https://docs.unity3d.com ...

  6. Split Animation Clip From FBX and Multiply Mode Sprite

    Use Script To Creat 2D Animation Clip From Multiply Mode Sprite 很多时候美工拿过来的一张序列帧图片,我们需要转换成 Multiply M ...

  7. Uni2D入门

    转载 http://blog.csdn.net/kakashi8841/article/details/17558059 开始 Uni2D增加了一些新的便利的特性给Unity,它们用于推动你2D工作流 ...

  8. (手冊)Animation 之 使用Animation View

    观看游戏物体上的动画(Viewing Animations on a GameObject) Animation View 是与 Hierarchy View.Scene View和Inspector ...

  9. Android动画View Animation与Drawable Animation

    Animations 一.Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转.缩放.淡入淡出等, ...

随机推荐

  1. CS229 1 .线性回归与特征归一化(feature scaling)

    线性回归是一种回归分析技术,回归分析本质上就是一个函数估计的问题(函数估计包括参数估计和非参数估计),就是找出因变量和自变量之间的因果关系.回归分析的因变量是应该是连续变量,若因变量为离散变量,则问题 ...

  2. es6(12)--类,对象

    //类,对象 { //基本定义和生成实例 class Parent{ //定义构造函数 constructor(name='QQQ'){ this.name=name; } } let v_paren ...

  3. linux web服务基础知识,dns

    #web服务基础知识c/s 客户端/服务器b/s 浏览器/服务器 nginx   >   web  server  服务端浏览器  >    web  client  客户端 #dns解析 ...

  4. MySQL 中的三中循环 while loop repeat 的基本用法

    -- MySQL中的三中循环 while . loop .repeat 求 1-n 的和 -- 第一种 while 循环 -- 求 1-n 的和 /* while循环语法: while 条件 DO 循 ...

  5. express总结(一)

    Express 框架核心特性: 可以设置中间件来响应 HTTP 请求. 定义了路由表用于执行不同的 HTTP 请求动作. 可以通过向模板传递参数来动态渲染 HTML 页面. express保留了Nod ...

  6. android 开发 写一个RecyclerView布局的聊天室,并且添加RecyclerView的点击事件

    实现思维顺序: 1.首先我们需要准备2张.9的png图片(一张图片为左边聊天泡泡,一个图片为右边的聊天泡泡),可以使用draw9patch.bat工具制作,任何图片导入到drawable中. 2.需要 ...

  7. [转]asp+oracle分页

    PageSize:每页显示的记录数.PageCount:根据用户设定好的PageSize和表中的总记录数,系统自动算出总页数.RecordCount:表中的总记录数.AbsolutePage:表示当前 ...

  8. 重识linux-压缩文件的原理

    1 一种压缩原理 在系统中,系统使用byte作为最小单位来描述文件大小,但是计算机最小的单位是bit 一个byte=8bit,通常描述一个文件,计算机是使用0和1来存储的,所以系统工程师利用技术把为0 ...

  9. openx -书表添加字段

    OpenX的版本是2.8.10.在数据表加完数据库之后,还不能读取和保存字段. OpenX使用scheme来 管理数据库表和字段, 修改数据库结构同时也要修改相关schema, 一个是etc/tabl ...

  10. java用Thread方式创建多线程

    进程:一个正在执行的程序,每一个进程都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元.线程:进程中一个独立的控制单元.线程控制着进程的执行.一个进程中至少有一个线程. java VM中至少有 ...