DGame 开发指导
DGame 使用 HybridCLR + YooAsset + UniTask + Luban 构建。 本 skill 提供 DGame 专属的 AI 精炼参考文档,优先描述本仓库实际 API、目录和落位规则。
核心红线
- 分层落位:框架运行时放
GameUnity/Assets/DGame/Runtime,编辑器工具放GameUnity/Assets/DGame/Editor,热更玩法放GameUnity/Assets/Scripts/HotFix/GameLogic。热更边界:DGame.Runtime/DGame.AOT不热更,Scripts/HotFix/*全部热更。 - 模块访问:业务代码优先通过
GameLogic.GameModule.XXX访问模块,不在业务层散落ModuleSystem.GetModule<T>()。 - 异步优先:IO、资源、场景等耗时操作优先使用
UniTask,不要新增 Coroutine 工作流。 - 资源生命周期成对:非实例化资源用
LoadAssetAsync/LoadAsset后按持有关系UnloadAsset;GameObject 实例用LoadGameObjectAsync/LoadGameObject,销毁实例时资源模块自动回收引用。 - 事件解耦:UI 内部监听用
UIBase.AddUIEvent自动清理;跨模块事件用[EventInterface(EEventGroup...)]、GameEvent.Get<T>()或GameEvent.AddEventListener。 - 配置表边界:配置表结构、Excel、导表脚本优先使用
luban-dev;本 skill 只补充 DGame 业务代码如何消费配置。
文档路由
根据任务类型,读取对应的 reference 文档:
| 任务类型 | 必读文档 | 进阶文档 | 优先级 |
|---|---|---|---|
| UI 开发 | ui-lifecycle.md | ui-patterns.md | P0 |
| 事件系统 | event-system.md | event-antipatterns.md | P0 |
| 资源加载 | resource-api.md | resource-patterns.md | P0 |
| 热更资源包 | hotpatch-workflow.md | resource-api.md | P0 |
| 构建打包 | build-pipeline.md | hotfix-workflow.md | P1 |
| 模块使用 | modules.md | — | P0 |
| 热更代码 | hotfix-workflow.md | — | P1 |
| 代码规范 | naming-rules.md | — | P1 |
| Luban 配置 | luban-config.md | luban-dev |
P1 |
| 红点系统 | reddot-system.md | ui-patterns.md | P1 |
| 项目结构 | architecture.md | — | P2 |
| 问题排查 | troubleshooting.md | — | P2 |
| MCP 场景/GO/UI/脚本/Editor | mcp-tools.md | — | P1 |
| MCP 材质/Shader/动画/VFX | mcp-visual.md | — | P2 |
使用原则
- 先读与任务直接相关的 reference,不要一次性加载全部文档。
- 如果 reference 与源码冲突,使用
rg搜索实际签名,优先信任源码,并在回复中标注冲突点。 - 修改配置表、
__tables__.xlsx、__beans__.xlsx、__enums__.xlsx、导表脚本或GameConfig/数据时,先使用luban-dev。 - 生成 UI 代码时匹配本仓库实际生命周期:
ScriptGenerator、BindMemberProperty、RegisterEvent、OnCreate、OnRefresh、OnDestroy。 - 资源地址通常等于
GameUnity/Assets/BundleAssets下资源文件名,不含路径和扩展名;改动前用实际资源和 YooAsset 设置验证。
Source: AmaniDawn/DGame — distributed by TomeVault.