Reference
Glossary
课堂统一词汇。产品和后台都用这些词描述 Unity 2D + agent coding 问题。
Unity Editor
Hierarchy: 当前 Scene 中的对象树。用来找页面、弹窗、按钮、遮罩等运行对象。
Project: 项目资产目录。脚本、Prefab、图片、配置和 Scene 都在这里,通常会进入 Git。
Inspector: Unity 编辑器中配置 Component 字段和引用的面板。它保存的引用是功能状态的一部分。
Console: Unity 的错误、警告、日志和 stack trace 窗口。验证失败时先看第一条红错。
Play Mode: Unity 运行模式。适合观察和验证;运行时 Inspector 改动通常不会作为资产保存。
Prefab Mode: 单独编辑 Prefab Asset 的模式。保存后可能影响所有实例。
Apply / Revert Override: Apply 把 Prefab 实例改动写回模板;Revert 丢弃实例改动。看到这两个按钮要先确认影响范围。
Unity object model
Scene: Unity 运行场景。2D onboarding 中可近似理解为启动环境或 UI 流程入口。Avoid: 只说“页面”,因为一个 Scene 可以包含多个 UI 状态。
GameObject: Unity 对象容器,功能来自挂载的 Component。Avoid: 把它当成普通 C# class。
Component: 挂在 GameObject 上的功能模块,例如 UGUI 的 Button / Image、项目的 UIEventListener、以及自定义 MonoBehaviour。Avoid: 深层继承式理解。
Prefab: 可复用对象模板,可以实例化到 Scene 中。Avoid: 让 agent 大规模直接改 Prefab YAML。
Prefab Instance: Scene 中由 Prefab 生成的实例。它可能带有 Override。
Override: Prefab 实例相对模板的局部改动。误操作可能影响表现或合并冲突。
2D UI
UGUI: Unity 原生 UI 系统,常见组件包括 Canvas、Image、Button。HappyMahjong 新功能应优先沿用当前模块的 UGUI / 项目 UI 系统写法。
NGUI compatibility remnants: 项目中仍可能保留 NGUI 相关目录或历史符号,主要用于兼容。Avoid: 把它当成新功能的默认 UI 技术栈。
UIEventListener: 项目保留的点击事件绑定工具,可用于 UIEventListener.Get(go).onClick。它不应被当成“这里要按 NGUI 开发”的证据。
Empty Click / EmptyClick: 用来接收空白区域、遮罩、关闭区域点击的空对象,常用于关闭弹窗或阻断点击穿透。Avoid: 误删或把业务内容挂到 Empty Click 上。
Canvas: UGUI 的根或容器,决定 UI 渲染空间和层级。
RectTransform: UI 对象使用的 Transform 变体,负责锚点、位置、尺寸。Avoid: 在本课展开 3D Transform。
UIUtil: HappyMahjong 的 UI / Prefab 加载与实例化入口。Avoid: 直接 Resources.Load 或 Object.Instantiate 生产 UI。
PopUpManager: HappyMahjong 弹窗管理器,负责弹窗层级、栈和显示方式。Avoid: 直接 SetActive 当成弹窗系统。
View: 持有 Unity UI 引用、读取输入、渲染文本、转发事件的薄 MonoBehaviour。
Mediator: StrangeIoC 中连接 View 和框架事件的中介层。Avoid: 让 View 直接调用所有业务服务。
Command: StrangeIoC 中响应事件并执行业务流程的对象,常调用 Service / Manager / Model。
HappyMahjong startup and StrangeIoC
AppMainScene: HappyMahjong 的启动场景,路径为 Assets/Scenes/AppMainScene.unity。
LoadDll: AppMainScene 中的启动脚本对象,对应 Assets/Scripts/Boot/LoadDll.cs,负责热更和实例化 AppMainRoot / UIRoot。
ContextView: StrangeIoC 的 Unity 入口 MonoBehaviour,拥有一个 Context。例子:AppRoot、LoginRoot。
MVCSContext: StrangeIoC 的 Model-View-Controller-Service 容器。例子:AppContext、LoginContext、GameContext。
AppContext: HappyMahjong 大厅主容器,绑定大量全局 Model、Command、Mediator 和跨 Context 事件。
IStrangeContext: HappyMahjong 模块化绑定接口,模块通过它向主 Context 注册 Injection / Command / Mediation / CrossContextBridge。
CrossContextBridge: StrangeIoC 的跨 Context 事件桥。Avoid: 跨模块直接引用对象。
Lifecycle and serialization
MonoBehaviour: 最常见的 Unity 脚本基类,通常挂在 GameObject 上参与生命周期。
Awake: 对象加载时执行,适合初始化自身状态。
OnEnable / OnDisable: 对象启用 / 禁用时执行;事件订阅、请求取消通常在这里成对处理。
Start: 第一次 Update 前执行,适合首刷和依赖其他对象已初始化后的逻辑。
Update: 每帧执行的高频入口。Avoid: 网络请求、IO、大量查找、每帧分配。
SerializeField: 让 private 字段被 Unity 序列化并显示在 Inspector 中。重命名时要考虑兼容。
FormerlySerializedAs: Unity 用于字段重命名兼容的属性,避免旧序列化数据丢失引用。
meta 文件: Unity 为资源生成的 GUID 文件。删除或错误移动会导致引用丢失。
Agent workflow
Analysis-only prompt: 要求 agent 先分析、列路径、给风险,暂不修改。Unity 项目中的首选安全入口。
Modification boundary: 本次允许和禁止修改的文件范围。没有边界就不要让 agent 动手。
Safe diff: 与任务目标一致、范围小、没有未解释 Unity 高风险文件变化的 diff。