转载 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. Android 接入X5WebView,让WebView加载更快;

    X5内核,微信和QQ浏览器都在用的WebView: 官网地址:https://x5.tencent.com,详细的信息进官网了解: 这是官方的宣传语: 1) 速度快:相比系统webview的网页打开速 ...

  2. Django中的ORM介绍,字段以及字段的参数。

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

  3. 「2017 山东一轮集训 Day6」子序列(矩阵快速幂)

    /* 找出了一个dp式子 是否能够倍增优化 我推的矩阵不太一样 是 1 0 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 2 求得逆矩阵大概就是 1 0 0 ...

  4. windows下mysql5.7 root密码重置

    1.在mysql根目录下新建配置文件my.ini(因为我安装的mysql-5.7.24安装完成后未看到该配置文件,所以新建一个,有的直接修改即可) [mysqld] skip-grant-tables ...

  5. Docker 核心技术与实现原理

    提到虚拟化技术,我们首先想到的一定是 Docker,经过四年的快速发展 Docker 已经成为了很多公司的标配,也不再是一个只能在开发阶段使用的玩具了.作为在生产环境中广泛应用的产品,Docker 有 ...

  6. python r(不进行转义)的用法

      第一种用法,直接针对字符串:r‘E:\ui\bbq.txt’ 第二种用法,针对变量名:r'' + 变量名

  7. 【Selenium-WebDriver自学】Selenium-RC脚本编写(十)

    ==================================================================================================== ...

  8. 关于QTcreator出现不能包含头文件的解决

    调试出现不能包含“某某.h文件”当增加次文件时候,还会出现另一个不能包含“某某.h”文件. 问题解决:由于VS2015和QT的冲突导致(不完全),下载不关联VS的QT版本再进行安装就可以啦.

  9. 最全spring boot视频系列,你值得拥有

    ================================== 从零开始学Spring Boot视频 ================================== àSpringBoot ...

  10. 用网线直连的两台PC上的虚拟机通过网线通信的配置

    Configure the ROS Networks: Quick Reference: http://blog.csdn.net/sonictl/article/details/46986565#t ...