UGUI 源码解析
前言
Unity UI(UGUI) 是一套基于 GameObject 的 UI 系统,提供了从事件检测到渲染再到用户交互的完整功能。基于 UGUI 系统,我们可以快速构建出一个完整的 UI 界面。虽然 UGUI 使用简单,但是作为一名有追求的游戏开发者,我们不能只停留在使用的层面,更应该深入了解其原理,这样才能更好的根据需求优化甚至扩展 UGUI。
本系列文章将深入 UGUI 底层,从源码角度解析 UGUI 的实现原理,帮助大家建立起对 UGUI 的更深刻理解。
参考资料
-
本系列文章使用的 UGUI 源码来自于 Unity 官方的开源版本代码:https://github.com/Unity-Technologies/uGUI
-
由于该开源版本的 UGUI 源码较为老旧,许多功能与新版本 Unity 中所展示的并不一致。因此建议大家使用早期的 Unity 版本进行实验与学习,如 Unity 2019.4.1f1。
-
Unity 官方提供了许多文档与教程:
-
本系列文章也参考了许多已有的 UGUI 源码解析文章,如:
总结得非常好的 UGUI 源码解析文章,特别是思维导图总结得十分全面,本系列的总体逻辑也将按照这篇文章的思路展开。
UGUI 源码解析
总览
虽然 UGUI 系统看起来十分庞杂,但是按照功能划分,实际上也就包含了这些功能:
-
事件的检测与处理:UGUI 系统要有接收用户输入的能力,并且根据用户的输入来做出相应的回应。如点击按钮后触发事件。
-
UI 元素的布局与渲染:UI 界面经常涉及到排列的需求,如背包格子、技能栏等。UGUI 系统需要有一套布局系统来实现这些需求。其次,所有的 UI 元素也都要通过渲染系统来显示在屏幕上。
-
UI 组件库:UGUI 系统提供了一套通用性很强的 UI 组件库,如按钮、滑动条、文本等。基于这些组件基本就可以实现大部分的 UI 界面,当然也可以在此基础上拓展。
文章索引
- UIBehaviour
UIBehaviour 是 UGUI 系统中所有组件的基类,该类中定义了一些基本的生命周期函数以及回调函数
点击展开代码
1 | /// <summary> |
- EventSystem
- 布局及渲染系统
- UI 组件库
- 番外篇