7FOREST17
全部笔记

FIELD NOTES / KNOWLEDGE BASE

Unity UI 开发技术全景笔记

本笔记系统梳理了 Unity 中三大主流 UI 解决方案(GUI/IMGUI、NGUI 与 UGUI)的核心原理与开发实践。内容涵盖各系统的渲染与事件机制、基础与复合控件使用、性能优化技巧以及项目架构落地方案。

本笔记系统梳理了 Unity 中三大主流 UI 解决方案(GUI/IMGUI、NGUI 与 UGUI)的核心原理与开发实践。内容涵盖各系统的渲染与事件机制、基础与复合控件使用、性能优化技巧以及项目架构落地方案。

CHAPTER 01

GUI (IMGUI) 基础与实践

IMGUI 依托 OnGUI 生命周期运行,主要用于编辑器扩展与开发调试,而非游戏运行时界面。通过坐标计算与布局组件,支持自定义扩展与所见即所得的编辑器工具开发。

  • 定位主要用于 Unity 编辑器扩展窗口开发,不适合作为玩家游戏内运行时 UI。
  • 代码绘制逻辑在 OnGUI 函数中执行,原点 (0,0) 位于屏幕或窗口左上角。
  • 控件依赖 Rect 矩形坐标,通过 GUIContent 控制图文,通过 GUIStyle 定制视觉表现。
  • 包含文本、按钮、单选多选、输入框等基础控件,以及滚动视图、窗口等复合容器。
  • 支持 GUILayout 自动布局及 GUISkin 统一换肤。
  • 实践开发中可通过 [ExecuteAlways] 特性与九宫格坐标算法实现编辑器内控件所见即所得。

CHAPTER 02

NGUI 基础与进阶

NGUI 是 Unity 早期的主流成熟第三方 UI 插件,依托 UICamera 和图集化管理实现高性能渲染。进阶重点涵盖 DrawCall 合并优化、事件分发以及缓动动画系统。

  • 三大核心组件由 UIRoot(屏幕自适应)、UIPanel(渲染容器)和 UICamera(事件监听)构成。
  • 图集(Atlas)管理通过打包整合零散碎图,以减少渲染批次并支持动态更新。
  • 核心控件包括 Sprite、Label(支持富文本与动态字体)和 Texture 大图显示。
  • 提供 Button、Toggle、Input、ScrollView 等复合交互组件及 Anchor 锚点对齐机制。
  • 通过 UIEventListener 和 UIEventTrigger 拓展多阶段交互事件监听。
  • DrawCall 优化的核心在于同图集元素层级连续、避免交叉穿插以及合理分层文本与大图。
  • 内置 Tween 缓动系统,支持通过配置组件快速实现弹性动效及开关状态切换。

CHAPTER 03

UGUI 基础与进阶及架构实践

UGUI 为 Unity 官方运行时 UI 系统,以 Canvas 与 RectTransform 为核心实现高效自适应与事件派发。进阶内容聚焦事件接口拓展、坐标转换、布局适配以及面板管理框架搭建。

  • 核心系统由 Canvas(渲染模式)、CanvasScaler(缩放适配)、GraphicRaycaster 与 EventSystem 协同驱动。
  • RectTransform 提供点锚定(位置自适应)与范围锚定(尺寸自适应)两种关键布局模式。
  • 基础控件 Image 支持九宫切片、平铺与填充模式,Text 支持富文本与描边阴影阴影效果。
  • 提供基于 IPointer* 系列接口与 EventTrigger 的精细化事件监听机制。
  • 利用 RectTransformUtility 可实现屏幕触摸坐标与 UI 本地坐标的精准转换(如摇杆、拖拽)。
  • 借助 Horizontal/Vertical/Grid 布局组件与 ContentSizeFitter 组合快速实现自适应列表与背包面板。
  • 项目框架采用 UI 管理器搭配面板基类模式,结合外部数据配置实现面板生命周期统一管控。

原笔记正文和上传文件仅作者本人可见。本页面展示的内容为作者审核后主动发布的章节摘要。