项目中 Unity UI 系统的选择
Unity 提供了三个 UI 系统:
- UI Toolkit
- Unity UI package (uGUI)
- IMGUI
UI Toolkit
UI Toolkit 是 Unity 最新的 UI 系统。其设计基于 web 标准且优化了跨平台表现。 既可以用来做编辑器扩展,也可以用于做游戏的 UI 。
UI Toolkit 包括:
- 一个 retained-mode UI system ,包含创建用户界面所需的核心特性和功能。
- UI 资源类型,受标准 Web 格式(如 HTML、XML 和 CSS)启发。使用它们来实现 UI 的构建和风格。
- 工具和资源,用于创建和调试界面。
Unity 打算让 UI 工具包成为新 UI 开发项目的推荐 UI 系统,但它仍然缺少 Unity UI (uGUI) 和 IMGUI 中的一些功能。
Unity UI 软件包 (uGUI)
Unity User Interface (Unity UI) 是一个较早的、基于 GameObject 的 UI 系统,你可以使用它来开发游戏和应用程序的运行时用户界面。支持高级的渲染和文本功能。
IMGUI
立即模式图形用户界面 (IMGUI) 是一个代码驱动的 UI 工具包,它使用 OnGUI
函数以及实现它的脚本来绘制和管理用户界面。您可以使用 IMGUI 来创建脚本组件的自定义 Inspector,Unity 编辑器的扩展以及游戏内调试显示。不推荐用于构建运行时 UI。
游戏 Runtime UI 系统选择
Unity 打算让 UI 工具包成为新 UI 开发项目的推荐 UI 系统,但它仍然缺少 Unity UI (uGUI) 和 IMGUI 中的一些功能。这些较旧的系统更适合特定用例。
uGUI 是以下情况的推荐解决方案:
- 在3D世界中定位和参与光照着色的UI
- 具有自定义着色器和材质的特效(VFX)
- 从
MonoBehaviours
中轻松引用
如果你需要创建在多种屏幕分辨率上运行的屏幕覆盖 UI,UI Toolkit 是 uGUI 的替代方案。考虑使用 UI Toolkit 来完成以下任务:
- 需要处理大量用户界面的工作
- 提供艺术家和设计师熟悉的创作工作流程
- 寻求无纹理的 UI 渲染能力
Editor UI 系统选择
如果你创建复杂的编辑器工具,推荐使用 UI Toolkit。推荐使用 UI Toolkit 的其他原因包括:
- 更好的重用性和解耦
- 可视化工具用于创作 UI
- 更好的代码维护和性能的可扩展性
对于以下情况,IMGUI 是 UI Toolkit 的替代方案:
- 无限制访问编辑器的扩展功能
- 轻量级 API,可快速在屏幕上渲染 UI
总结
通过前面的比较和搜集使用者反馈,UI ToolKit 仍然功能不完善和性能差问题,目前只适合 Unity 的 Editor 的开发。Runtime 更推荐使用 uGUI,或考虑引入 React 等前端框架来实现 UI , 如