美文网首页Unity游戏编程
什么是UI?unity中NGUI与UGUI的区别?

什么是UI?unity中NGUI与UGUI的区别?

作者: 困卡 | 来源:发表于2017-04-10 22:57 被阅读4205次
    什么是UI?

    UI即User Interface(用户界面)的简称。泛指用户的操作界面,UI设计主要指界面的样式,美观程度。而使用上,对软件的人机交互、操作逻辑、界面美观的整体设计则是同样重要的另一个门道。好的UI不仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由,充分体现软件的定位和特点。

    NGUI与UGUI详细对比

    UGUI是官方4.6以后推出的一套UI组件,相对于之前的GUI倒是改头换面了,可视化操作,便捷、省心。NGUI则是unity一直以来最强的UI插件(没有之一),甚至还是官方新UI的导师。

    1.ugui的ui根目录为canvas(画布),ngui则是uiroot。在命名上官方似乎更贴合想象力。

    2.在屏幕自适应方面,ugui为render mode。ngui则为scaling style。

    3.anchor(锚点)的使用方式差不多,都是用来固定位置,在可视化方面,ugui的花瓣锚点真不太好调。

    4.ngui灵活性不是一般的高,随意创建一个sprite,加了boxcollider,它就可以是按钮、滑动条……

    5.ugui的sprite的切图功能真心不错。ngui使用图集不能直接拖拉(毕竟是三方插件)略不方便。

    6.ngui的tween动画功能很省心,无需额外定义代码,使用封装好的脚本就可以实现一些简单动画,叠加脚本甚至能实现相对复杂的动画效果。

    最后,强大的网友分享了一张比较全面的对比图(点击图片放大):

    ngui对比ugui.png
    总结:
    1. NGUI与UGUI的区别
      1. uGUI的Canvas 有世界坐标和屏幕坐标
      2. uGUI的Image可以使用material
      3. UGUI通过Mask来裁剪,而NGUI通过Panel的Clip
      4. NGUI的渲染前后顺序是通过Widget的Depth,而UGUI渲染顺序根据Hierarchy的顺序,越下面渲染在顶层.
      5. UGUI 不需要绑定Colliders,UI可以自动拦截事件
      6. UGUI的Anchor是相对父对象,没有提供高级选项,个人感觉uGUI的Anchor操作起来比NGUI更方便
      7. UGUI没有Atlas一说,使用Sprite Packer
      8. UGUI的Navigation在Scene中能可视化
      9. UGUI的事件需要实现事件系统的接口,但写起来也算简单

    2.各自的优缺点
    1) NGUI还保留着图集,需要进行图集的维护。而UGUI没有图集的概念,可以充分利用资源,避免重复资 源。
    2) UGUI出现了锚点的概念,更方便屏幕自适应。
    3) NGUI支持图文混排,UGUI暂未发现支持此功能。
    4) UGUI没有 UIWrap 来循环 scrollview 内容。
    5) UGUI暂时没有Tween组件。

    3.使用选择总结
    UGUI由于是Unity原生支持的,所以使用上会更加的人性化。并且伴随着版本升级功能会越来越强,逐渐将成为主流ui方案。NGUI是UGUI出现之前的产物,通过MeshRenderer来实现类似CanvasRenderer的功能,概念上有点蹩脚。作为一个插件虽然已最大努力让UI开发工作变得简单,但相比能够让UnityEditor做出相应修改的UGUI(如RectTransform的出现),其易用性是没法比的。综合来说,新的项目建议使用UGUI,学习成本不高,工具流更有助于提高开发效率。

    相关文章

      网友评论

        本文标题:什么是UI?unity中NGUI与UGUI的区别?

        本文链接:https://www.haomeiwen.com/subject/uiieattx.html