Unity 打算让 UI 工具包成为新 UI 开发项目的推荐 UI 系统,但它仍然缺少 Unity UI (uGUI) 和 IMGUI 中的一些功能。这些较旧的系统更适合特定用例,并且需要支持旧版项目。
本页面提供了 UI 工具包、Unity UI 和 IMGUI 的高级功能比较,以及有关它们各自的 UI 设计方法的说明。使用该内容可帮助确定哪种 UI 系统适合您的项目。
对 UI 系统的选择取决于是为 Unity 编辑器开发 UI,还是为游戏或应用程序开发运行时 UI。
thead>
UI 的类型 UI 工具包 Unity UI(uGUI) IMGUI 注意事项/thead>
运行时(调试) ✔ * ✔ ✔ 这指用于调试用途的临时运行时 UI。 运行时(游戏内) ✔ * ✔ 不推荐 出于性能原因,Unity 不推荐将 IMGUI 用于游戏内运行时 UI。 Unity Editor ✔ ❌ ✔ 不能使用 Unity UI 为 Unity 编辑器创建 UI。
需要 UI 工具包软件包(当前处于预览版)。
col style="text-align:left;">
col style="text-align:left;">
col style="text-align:left;">
col style="text-align:left;">
col style="text-align:left;">
用户的类型 UI 工具包 Unity UI
(uGUI)
IMGUI 注意事项
程序员 ✔ ✔ ✔ 程序员可以使用任何游戏开发工具或 API。
技术美术师 部分支持 ✔ ❌ 熟悉 Unity 基于游戏对象的工具和工作流程的技术美术师可能会习惯使用游戏对象、组件和 Scene 视图。
他们可能不习惯 UI 工具包类似于 Web 的方法或 IMGUI 的纯 C# 方法。
UI 设计师 ✔ 部分支持 ❌ 熟悉 UI 创建工具的 UI 设计师可能会习惯 UI 工具包基于文档的方法。
如果他们不熟悉基于游戏对象的工作流程,则可能需要程序员和/或关卡设计师提供帮助。
功能
UI 工具包
UGUI+TMP
注意事项
UGUI 基于游戏对象,支持标准 Unity 预制件。
Because Unity UI is GameObject-based, you can set up the Scene view for WYSIWYG authoring.
UI Toolkit provides the UI Builder package (currently in preview) for document-based WYSIWYG UI authoring with a web-like workflow.
UI 工具包提供一个专用的调试器(菜单:
Window > UI Toolkit > Debugger),类似于主要 Web 浏览器中的调试工具。
可以通过运行时组件集成使用 UI 工具包软件包(当前处于预览版)创建的运行时 UI,并将它显示在游戏视图中。
功能
UI 工具包
UGUI+TMP
注意事项
br>
br>UI 工具包通过 USS 支持伪状态。
br>
br>Unity UI 在默认情况下支持一组基本的富文本标签,并通过 TextMesh Pro 包支持更大的一组标签。
br>
br>Unity UI 通过 TextMesh Pro 包支持 SDF 文本。
br>
br> Unity UI 通过 TextMesh Pro 包支持后备字体。
虽然 Unity UI 和 UI 工具包提供相同的布局可能性,但其布局系统大不相同。
- 借助 Unity UI,可以使用 RectTransForm 组件在游戏对象级别上控制布局。
- 借助 UI 工具包,可以在 USS 样式表中定义布局,使用更类似于 Web 的基于 Flexbox 的布局系统。
对于 UI 工具包,Unity 在研究在 USS 中实现 CSS 样式网格的可能性。
Unity UI 可以序列化事件绑定。
事件的可视化脚本 研究 ❌
在 UI 工具包与 Unity UI 之间进行选择是高性能与多功能性/支持的功能之间的权衡。
UI 工具包目前支持的功能集较小,但更易于针对渲染性能进行优化。它基于文档、由数据驱动并使用单一着色器、材质和纹理图集来绘制元素层级视图。对于包含复杂元素层级视图的简单屏幕空间 UI(例如,菜单或抬头显示)而言,它是一个不错的选择,并且在任何平台上都表现良好。
Unity UI 的功能更多,并支持高级渲染和文本功能。可以使用自定义材质设置任何视觉元素,并利用高级裁剪和遮罩功能。但是,这些功能可能会使得难以在性能预算内保持更复杂的 UI。
Unity UI 支持 3D 遮罩旋转。
嵌套遮罩 部分支持/计划 ✔ UI 工具包的嵌套遮罩仅限于一个级别,但不影响绘制调用批处理。多级嵌套遮罩已在计划中。
Unity UI 最多支持八个级别的嵌套遮罩,但每个第二级会中断绘制调用批处理。
此部分将 UI 工具包与 IMGUI 进行比较,以便为 Unity 编辑器开发用户界面。
- Inspector 集成
- 控件和数据绑定
- 工作流程
- 样式
- 布局
- 事件
- 渲染
- 动画
- 可定制性
UI Toolkit provides a dedicated debugger (menu: Window > UI Toolkit > Debugger) that is similar to debug tools found in major web browsers.
Scene View integration ✔ ✔
虽然 Unity UI 和 IMGUI 提供相同的布局可能性,但其布局系统大不相同。
- IMGUI 使用基于 C# 的 GUILayout 系统。
- UI 工具包使用更类似于 Web 的基于 Flexbox 的布局系统。可以通过 USS 样式控制布局。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/2809.html