CD Code Digest Hub /Unity 6

Unity 6 C# 源码分析

3 分钟阅读 4 个章节

UnityCsReference 是 Unity 6000.7.0b7 引擎与编辑器 C# 部分的参考源码,仅供阅读,不能修改或再分发 README.md:1-17。本 Wiki 说明这些 C# 代码如何组织、如何与仓库外的原生引擎交互,以及运行时和编辑器核心子系统的实现机制。

快照与范围#

项内容
源码版本提交 6974f873c0dd24dd88840492397e3a7ce3b817ab(Unity 6000.7.0b7 C# reference source code)
分析日期2026-10-31
目标读者想理解 Unity C# API 背后机制、托管/原生边界和编辑器子系统协作方式的引擎或工具开发者
分析范围工程结构;运行时核心(绑定、对象模型、生命周期、帧循环与异步、序列化、Jobs);编辑器核心(主循环回调、窗口、IMGUI、Inspector、脚本编译、资源导入、播放器构建、包管理器);UI Toolkit(更新阶段、事件、样式、布局、渲染);全部 166 个模块的目录级盘点
输出语言中文;代码标识符保留原文

阅读前必须知道的三件事#

  1. 原生代码不在仓库中。 大量 API 是 extern 声明,实际实现位于 C++;本 Wiki 对原生行为的描述都标为推断。见 仓库概览 §3.1。
  2. 源码可能已按编辑器配置预处理。 全仓库没有任何 #if 指令,播放器专用分支可能已被剥离。见 仓库概览 §3.2。
  3. 模块在真实构建中是独立程序集。 参考工程把它们合并成两个程序集,internal 的可见范围因此与真实构建不同。见 物理组织 §3。

推荐阅读路线#

目标路线
第一次接触这个仓库概览 → 阅读与导航指南 → 物理组织 → 绑定层
理解脚本的生命周期与重载对象模型 → 生命周期作用域 → 编辑器应用与回调 → 脚本编译
理解编辑器窗口如何显示窗口系统 → IMGUI → UI Toolkit 架构 → 事件分发
编写编辑器扩展编辑器架构 §3(扩展点模式)→ Inspector → 资源导入 → 播放器构建

覆盖限制摘要#

详细结论见 audit.md。主要限制:

  • 原生侧行为不可验证:帧循环顺序、对象销毁时序、资源数据库、构建主流程、绑定生成器和 IL 注入器都只能根据 C# 声明和注释推断。
  • 没有测试证据:仓库不包含测试,所有契约只能从实现和注释得出。
  • 有意排除的区域:166 个模块中有 147 个只做了目录级盘点,例如 Physics、Animation、Audio、ProfilerEditor、QuickSearch、GraphToolkitEditor、MultiplayerEditor;另有 10 个只在页面中提及,例如 UIBuilder、Burst。Runtime/Export 下的大部分领域 API(Graphics、Camera、RenderPipeline 等)、场景视图、Overlays、动画编辑器和版本控制也未分析。
  • 未执行的命令:没有构建、运行或测试代码。行号和链接经过脚本检查,命令记录见 audit.md。