• 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,不知道是否在性能上有所劣势。



  • 相关阅读:
    深入浅出:了解前后端分离优势、前后端接口联调以及优化问题
    深入浅出:了解JavaScript中的call,apply,bind的差别
    Vue2.0 搭建Vue脚手架(vue-cli)
    深入浅出:promise的各种用法
    深入浅出:了解常见的设计模式(闭包、垃圾回收机制)
    sql server xml 功能
    sqlite 用法
    PowerDesigner使用
    asp.net 开发注意的几点
    vue template
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7268813.html
Copyright © 2020-2023  润新知