赞
踩
unity中有很多ui方案,各种方案有什么优势劣势,这里一一列举一下,知识扩充一下。
UI方案 | 适用范围 |
IMGUI | 可用于发布运行时和Editor |
UIElement | 可用于发布运行时和Editor |
UGUI | Runtime,两大主流 UI 解决方案之一 |
NGUI | Runtime,两大主流 UI 解决方案之一,现已较少 |
FGUI | Runtime |
UIWeidgents | Runtime+Editor |
“即时模式”GUI 系统(也称为 IMGUI)是一个完全独立的功能系统,IMGUI 是一个纯代码驱动的 GUI 系统,主要用作程序员的工具。特点是系统不会保存 UI 控件上的任何信息,更没有状态的概念。每帧都会反复的询问你所有的控件和状态信息并重新绘制(OnGUI方法),可以理解为立即模式没有记忆,它的每一帧都是全新的开始,有着经典的排版布局类 EditorGUILayout 和 GUILayout
- void OnGUI()
- {
- GUILayout.Label("Hello world");
- GUILayout.Button("Test");
- }
Unity在2018年发布UIElement,当时仅支持Editor运行,是UIToolkit的前身, UIToolkit是Unity官方2019推出的最新 UI解决方案,号称未来将逐步取代现有的UGUI方案,当然现在(2021.7.22)仍处于preview阶段。官方解释这是一套兼顾Editor和Runtime界面。
主要使用.uxml和.uss完成布局和样式,整体和 html css 语法基本一致。
想要使用UIToolkit,需要启用预览版本包功能。
在项目Package/manifest.json中,加入下面引用,版本需要2019.4+(2019.4.5不行,已测试),其中com.unity.ui包就是UIToolkit,com.unity.ui.builder包则是UIBuilder,
- "com.unity.ui": "1.0.0-preview.18",
- "com.unity.ui.builder": "1.0.0-preview.18",
通过Create->UIToolkit->UIDocument,创建布局文件,双击打开UIBuilder,UIBuilder是UXML和USS的可视化编辑器,让使用者不需要手写布局代码,在编辑器中可以方便做出各式各样的界面。UIBuilder界面如下:
NGUI的最早版本发布于2011年12月份,NGUI可以说是Unity平台最强大的第三方UI系统Unity早期版本(Unity4.6之前),引擎自身的UI系统是很差的,绝大多数项目都是使用的NGUI进行UI界面开发的。
Unity 4.6中Unity官方也开发出UGUI,不过UGUI已经好几年没有在更新了,性能问题一直饱受开发者诟病,还有图文混排、循环滑动列表一类的基础组件缺失,导致每个项目都要单独实现一遍。在性能上UIToolkit更是超越UGUI,它可以1次DrawCall完成所有界面的绘制,UIBuilder编辑器对界面布局上也对策划美术更加友好。
FairyGUI
它是独立的UI编辑器,且对美术、策划都友好。其特点如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。