Unity插件之NGUI学习(4)—— 创建UI2DSprite动画

创建一个新的Scene。并按 Unity插件之NGUI学习(2)创建UI Root,并在UI Root的Camera下创建一个Panel。


然后在选中Panel,在菜单中选择NGUI->Create->Unity 2D Sprite


查看Inspector窗体



接着是在Unity中制作Sprite:

在Project窗体创建Textures目录。并从外部拖入一些图片素材,然后选中须要转成Sprite的图片,然后在Inspector窗体进行转变Sprite的操作,如图。


选择Sprite(2D/uGUI)就可以完毕转变,图片能够多选。

然后在Hierarchy窗体选中先前制作的2D Sprite,在Inspector窗体中选择先前制作的Sprite。



接着是UI2DSprite的动画制作了。在Hierarchy窗体选中先前制作的2D Sprite,在菜单中选择Component->Scripts->UI2DSprite Animation,然后在Inspector窗体对UI2DSprite Animation进行编辑。


Framerate 设置帧率

Ignore Time Scale 设置是否忽略TimeScale对动画播放的影响

Frames 手动设置动画播放的顺序,可将先前制作的Sprite拖动到各个Element中去。

点击播放button,就可以看到动画效果。

只是看了下UI2DSpriteAnimation的源代码,比較简单,默认仅仅有循环播放,也没有暂停和播放功能(与UISprinte Animation同样)。只是这些都能够通过简单的代码改动来添加这些功能。


UISprinte Animation与UI2DSprite Animation的差别

除性能考虑外,在我看来最大的差别在于动画播放的每一帧图片的控制不同。


UISprinte Animation全然是通过Name Prefix来控制每一帧图片的。或者是制作单个Atlas的全部图片。并且播放的顺序全然是靠图片名称来排序的,所以在制作动画是,每张图片名称最好以数字结尾,便于排序。并且假设同一张图片须要在多个动画中使用的话,好像UISprinte Animation就不能合理的使用,不知道大家有没有好的建议。


UI2DSprite Animation的优势在于能够随意设置每一帧动画的图片,可是它必须将每个单张图片转成Sprite,不知道是否在性能上有所劣势。



原文地址:https://www.cnblogs.com/yangykaifa/p/7268813.html