转载 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. tp5 计算两个日期之间相差的天数

    //两个日期之间相差的天数 function diffBetweenTwoDays ($day1, $day2) { $second1 = strtotime($day1); $second2 = s ...

  2. day17常用模块1记忆

    常用模块(详细见'egon'博客)1. 时间模块time与datetime 1. 时间戳:time.time()        应用: 用来计算时间间隔  time.sleep(5) 延迟5秒    ...

  3. redis 的简单用法

    使用  :下载完后 打开任务管理器 把redis_server 进程关掉, 切换到   E:\redis 中 redis-server.exe redis.windows.conf 打开一个 cmd ...

  4. python学习过程中的踩坑记录<若干,随时更新>

    问题1:python中print的连串输出与java不一样? 输入print(code +"+++"); --在代码中写入,界面未报错,但是告诉你不行 会报错,如图: 解决办法: ...

  5. postgresql copy的使用方式

    方法一: 将数据库表复制到磁盘文件: copy "Test" to 'G:/Test.csv' delimiter ',' csv header encoding 'GBK'; 从 ...

  6. 【Linux】【Tomcat】Tomcat的安装和配置等

    安装环境 :Linux(Ubuntu 版) 安装软件 : apache-tomcat-9.0.0.M1.tar.gz(下载地址http://tomcat.apache.org/) 步骤一 Tomcat ...

  7. tornado-cookies+pycket 验证

    1.pip install pycket pip install redis 2.config settings = dict( debug=True, template_path='template ...

  8. gentoo raid1

    参考 gentoo wiki,和其他网页,实现两个硬盘组成 raid1. 两个硬盘一个是 sdc,一个是 sdd,都是 4T容量. 首先内核开启 Autodetect RAID arrays duri ...

  9. UITableView取消cell选中状态关于deselectRowAtIndexPath

    有没有遇到过,导航+UITableView,在push,back回来之后,当前cell仍然是选中的状态. 当然,解决办法简单,添加一句[tableView deselectRowAtIndexPath ...

  10. git 简单的操作命令

    1, 克隆已存在项目 => git clone url 2, 拉取代码 => git pull 3,  配置账号密码 git config --global user.email &quo ...