UGUI源码学习-总览

UGUI源码学习-总览

前言

Unity UGUI(Unity User Interface,也称 Unity UI 软件包)是 Unity 引擎中一个基于游戏对象(GameObject)的、用于开发运行时游戏界面(UI)的成熟系统。你游戏里的血条、按钮、菜单、背包界面等,绝大多数都是用 UGUI 制作的。 虽然UGUI使用简单,但是作为一名游戏开发者来说,更应该了解其原理,方便对其进行拓展和优化

本文将深入UGUI底层,从源码角度分析其实现

参考资料

总览

找AI帮忙生成了一张UGUI整体的总览图

但我感觉按上面文章提供总览图,源码看起来会更加的清晰

从宏观上看,源码大致可以划分为几个部分。

  • 基础框架——UIBehaviour
    • 所有UGUI的公共基类
  • 渲染更新系统:Graphic & CanvasUpdateSystem
    • Graphic 标脏,脏标记(Dirty)的发起者
    • CanvasUpdateSystem 处理脏元素,委会布局重建和图形重建
  • 事件处理系统: EventSystem & 输入模块
    • EventSystem:每帧处理输入和射线检测
    • 输入与射线模块
    • 事件数据与派发
  • 布局系统:LayoutSystem
    • 负责UI元素的自适应排列
  • 交互组件:Selectable 及具体实现
    • 基于事件系统构建的可交互UI组件层。

文章索引

  1. UIBehaviour