首页 > 代码库 > Unity插件之NGUI学习(4)—— 创建UI2DSprite动画
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中去。
点击播放按钮,即可看到动画效果。
不过看了下UI2DSpriteAnimation的源码,比较简单,默认只有循环播放,也没有暂停和播放功能(与UISprinte Animation相同),不过这些都可以通过简单的代码修改来增加这些功能。
UISprinte Animation与UI2DSprite Animation的区别
除性能考虑外,在我看来最大的区别在于动画播放的每一帧图片的控制不同。
UISprinte Animation完全是通过Name Prefix来控制每一帧图片的,或者是制作单个Atlas的所有图片,而且播放的顺序完全是靠图片名称来排序的,所以在制作动画是,每张图片名称最好以数字结尾,便于排序。而且如果同一张图片需要在多个动画中使用的话,好像UISprinte Animation就不能合理的使用,不知道大家有没有好的建议。
UI2DSprite Animation的优势在于可以任意设置每一帧动画的图片,但是它必须将每一个单张图片转成Sprite,不知道是否在性能上有所劣势。
Unity插件之NGUI学习(4)—— 创建UI2DSprite动画