上一篇
Uni2D 入门 -- Atlas
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 入门 -- Skeletal Animation
分享到:
相关推荐
<uni-data-picker> 是一个选择类datacom组件。支持多列级联选择。列数没有限制,如果屏幕显示不全,顶部tab区域会左右滚动。 适用于uni-app使用uni-data-picker实现省市区选择器的json数据
这是一个使用uni-simple-router实现简单的路由守卫
应用uni-swipe-action组件实现列表项左划操作。 真正做到开箱即用。
uni-preset-vue-master uniapp项目模板
1、使用HbuildX工具,引入uni-ui插件,使用uni-swiper-dot组件,开发轮播图 2、轮播图的三种mode:nav、dot、indexes
uni-preset-vue模板
uni-app 自定义底部导航栏uni-app-bottom-navigation-master.zip
uni-app和Vue2的composition-api 兼容UniAppVue2中composition-api的使用,以及提供UniApp生命周期钩子。 该项目会持续更新以及维护至uni全面支持vue3,composition-api。 多端平台兼容性 应用程序 微信小程序 ...
Uni-App离线开发工具包,即App离线SDK--2.9.8版本,以备不时之需。
uni-app组件,来源:插件市场下载
uni-app-小程序自定义底部菜单样式示例
uni-read-pages 通过 配合此库,可以随心所欲的读取 pages.json 下的所有配置 安装 您可以使用 Yarn 或 npm 安装该软件包(选择一个): Yarn yarn add uni-read-pages npm npm install uni-read-pages 开始 配置 ...
自定义日历,可以添加签到标志,显示阴阳日历。点击实现上下月与上下一年
uni-app 侧边导航分类,适合商品分类页面uni-app-left-navigation-master.zip
uniapp中使用的车牌输入控件,弹出键盘点选
uni-app-video(支持后台播放音频) demo实现思路: 正常唤起video组件播放,支持倍速等操作,全屏时提供开启后台播放音频; page hide时,后台播放audio标签,倍速恢复1.0正常播放;
Uni-App离线开发工具包,即App离线SDK--2.9.3版本,以备不时之需。
uni-app-日历组件
一个更贴合uni-app的router插件,一切都使用uni-app原生钩子实现和方法实现,抛弃了vue-router的影子 qq群:701697982 注意 由于条件限制,仅在H5环境和微信小程序环境,以及app端android和ios环境进行过测试感谢某...
uni-auto-pagesuni-app 开发中根据规则自动配置页面 pages,分包 subPackages,和 condition 生成 pages.josn 的 webpack 插件,使得开发者不需要手动的去维护 pages.json。类似 vue-auto-routing,使用非常简单。安装...