【Unity基础】Unity中的UI系统

Unity中有三种UI系统,分别是IMGUI,Unity UI(uGUI)UI工具包(UI Toolkit)

这三种分别适用于编辑器和运行时UI的设计,但在功能支持上有所侧重。

一、Unity中的UI类型

UI类型有两种:编辑时和运行时

对UI系统的选择取决于是为了Unity编辑器开发UI,还是为游戏或应用程序开发运行时UI。

|--------------|---------------|------------------|---------------|-----------------------------|
| UI类型 | UI工具包 | Unity UI | IMGUI | 注意事项 |
| 运行时(游戏内) | 支持 | 推荐 | 不推荐 | 出于性能原因,不推荐将IMGUI用于游戏内运行时的UI |
| 编辑器 | 推荐 | 不支持 | 支持 | Unity UI不能用于编辑时 |

在最新的Unity 6中,推荐使用UI工具包。但UI工具包中不是支持Unity UI和IMGUI中所有的功能,所以对于某些特殊场景或旧项目还是要选择Unity UI或IMGUI。

不同角色对于UI系统的掌握要求

|------------|---------------|------------------|---------------|-------------------------------------------------------------------------------------|
| 角色 | UI工具包 | Unity UI | IMGUI | 技能 |
| 开发 | 支持 | 支持 | 支持 | 程序员可以使用任何游戏开发工具或API |
| 技术美术 | 部分支持 | 支持 | 不支持 | 熟悉Unity基于游戏对象的工具和工作流程的技术美术师可能会习惯使用游戏对象、组件和Scene视图。他们可能不习惯UI工具包类似于Web的方法或IMGUI的纯C#方法 |
| UI设计师 | 支持 | 部分支持 | 不支持 | 熟悉UI创建工具的UI设计师可能会习惯UI工具包基于文档的方法。 |

二、运行UI

UI工具包是Unity UI的替代方案,适用于创建运行在多种屏幕分辨率上的UI。如果需要以下功能,可以考虑使用UI工具包:

如果有以下需求,则推荐使用Unity UI:

  • 需要大量用户界面内容
  • 为美术师和设计师提供熟悉的创作工作流
  • 提供无纹理的UI渲染能力
  • 在3D场景中定位和照明的UI
  • 使用自定义着色器和材质的特效
  • 从MonoBehaviour中便捷地引用

(一)适用场景

|------------------------|------------|
| Unity 6 | 推荐 |
| 适用多种分辨率的菜单和和复杂UI项目的HUD | UI工具包 |
| 用于世界空间UI和VR应用 | Unity UI |
| 需要自定义着色器和材质的UI | Unity UI |

(二)UI工具包和Unity UI具体功能对比

|--------------|--------------------|------------------|
| 功能 | UI Toolkit | Unity UI |
| 所见即所得的创作 | 是 | 是 |
| 嵌套可重用组件 | 是 | 是 |
| 全局样式管理 | 是 | 否 |
| 布局和样式调试器 | 是 | 是 |
| 场景集成 | 是 | 是 |
| 富文本标签 | 是 | 是* |
| 可缩放文本 | 是 | 是* |
| 字体回退 | 是 | 是* |
| 自适应布局 | 是 | 是 |
| 输入系统支持 | 是 | 是 |
| 序列化事件 | 否 | 是 |
| 视觉脚本支持 | 否 | 是 |
| 兼容渲染管线 | 是 | 是 |
| 屏幕空间(2D)渲染 | 是 | 是 |
| 世界空间(3D)渲染 | 否 | 是 |
| 自定义材质和着色器 | 否 | 是 |
| 精灵/精灵图集支持 | 是 | 是 |
| 动态纹理图集 | 是 | 否 |
| 无纹理元素 | 是 | 否 |
| UI 抗锯齿 | 是 | 否 |
| 矩形裁剪 | 是 | 是 |
| 蒙版裁剪 | 否 | 是 |
| 嵌套蒙版 | 是 | 是 |
| UI 过渡动画 | 是 | 否 |
| 与动画剪辑和时间线的集成 | 否 | 是 |

三、编辑器UI

如果要创建复杂的编辑顺工具,推荐使用UI工具包

  • 更好的可重用性和解耦性
  • 提供可视化工具以创作UI
  • 更好的可扩展性,便于代码维护和性能优化

IMGUI是UI工具包的替代方案,适用于以下情况:

  • 不受限制地访问编辑器的扩展能力
  • 轻量级API,快速在屏幕上渲染UI

(一)适用场景

|-----------------|------------|
| Unity 6 | 推荐 |
| 复杂的编辑器工具 | UI工具包 |
| 属性绘制器 | UI工具包 |
| 与设计师协作 | UI工具包 |

(二)UI工具包与IMGUI具体功能对比

|-----------------|--------------------|---------------|
| 功能 | UI Toolkit | IMGUI |
| 所见即所得的创作 | 是 | 否 |
| 嵌套可重用组件 | 是 | 否 |
| 全局样式管理 | 是 | 是 |
| 布局和样式调试器 | 是 | 否 |
| 富文本标签 | 是 | 是 |
| 可缩放文本 | 是 | 否 |
| 字体回退 | 是 | 是 |
| 自适应布局 | 是 | 是 |
| 默认检查器 | 是 | 是 |
| 检查器:编辑自定义对象类型 | 是 | 是 |
| 检查器:编辑自定义属性类型 | 是 | 是 |
| 检查器:混合值(多重编辑)支持 | 是 | 是 |
| 数组和列表视图控件 | 是 | 是 |
| 数据绑定:序列化属性 | 是 | 是 |

相关推荐
qq_205279052 小时前
unity PS 给图片换透明底图,去除白色底图
unity
向宇it6 小时前
【推荐100个unity插件】unity易于使用模块化设计的天空、体积云和天气系统——Enviro 3
游戏·3d·unity·c#·游戏引擎
紫薯馍馍15 小时前
Adobe Photoshop 2025(Ps2025)下载安装教程
ui·adobe·photoshop
怣疯knight20 小时前
unity实现2D人物从上面踩踏敌人,敌人减血的简易方法(类似马里奥的攻击手段)
unity·游戏引擎
兰亭妙微21 小时前
2026年UX/UI五大趋势:AI、AR与包容性设计将重新定义用户体验
开发语言·ui·1024程序员节·界面设计·设计趋势
摘星编程1 天前
【参赛心得】HarmonyOS创新赛获奖秘籍:如何用Stage模型和声明式UI打造高分作品
ui·华为·harmonyos·鸿蒙开发·stage模型
sniper_fandc1 天前
Elasticsearch从入门到进阶——搜索优化原理
elasticsearch·搜索引擎·lucene·1024程序员节
知识分享小能手2 天前
uni-app 入门学习教程,从入门到精通,uni-app中uCharts组件学习((8)
vue.js·学习·ui·微信小程序·小程序·uni-app·echarts
井队Tell2 天前
打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第五天)
学习·3d·unity
yi碗汤园2 天前
【一文了解】八大排序-插入排序、希尔排序
开发语言·算法·unity·c#·1024程序员节