什么是UI?unity中NGUI与UGUI的区别?
什么是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总结:
- NGUI与UGUI的区别
- uGUI的Canvas 有世界坐标和屏幕坐标
- uGUI的Image可以使用material
- UGUI通过Mask来裁剪,而NGUI通过Panel的Clip
- NGUI的渲染前后顺序是通过Widget的Depth,而UGUI渲染顺序根据Hierarchy的顺序,越下面渲染在顶层.
- UGUI 不需要绑定Colliders,UI可以自动拦截事件
- UGUI的Anchor是相对父对象,没有提供高级选项,个人感觉uGUI的Anchor操作起来比NGUI更方便
- UGUI没有Atlas一说,使用Sprite Packer
- UGUI的Navigation在Scene中能可视化
- 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,学习成本不高,工具流更有助于提高开发效率。