◆ 持续开发中 · 当前为非稳定版本,如需抢先体验请通过 GitHub Issues 联系作者

架构与数据流

一套面向 Unity 2022.3 的 DOTS / ECS 数据驱动游戏框架——配置、本地化、行为树全部是 Blob;UI 就是 ECS System;世界无关的静态查询。

命名空间 HYC.Framework.*;生成的配置类落 {root}.config,BT 自定义节点落 {root}.BT.Nodes(root 见 HYC Settings → CodeGen)。

数据流四阶段

[生成期] 模板/Excel/行为树资产 → 代码生成 + 数据编辑
   ↓
[A0/A1 引导期] 装单例、加载配置表、读启动参数 → 注册到 ConfigRegistry
   ↓
[A2/A3 运行期] 房间/场景、模拟、技能、AI、战斗
   ↓
[B9 表现期] UI 最后跑,读一帧前已算好的状态

更新组顺序固定:A0 → A1 → A2 → A3 → B9(都在 UpdateGroup_Root 下)。UI 永远最后刷新,所以玩法改的值下一帧 UI 才看到——这是设计,不是延迟。

模块地图

模块核心类一句话
配置{ns}.ConfigManager / ConfigRegistry生成式门面,宿主唯一查询入口
本地化LocalizationManager / LocalizationBlobSystemBlob 多语言,自动从 StreamingAssets 加载
行为树BTInterpreterSystem / BTInterpreter指针遍历 BTRootBlob
ECS UIUIManager / AbsUISystemUI 即 System,B9 最后运行
引导FrameworkBootstrap / FrameworkWorld世界与系统装配
消息MessageEntity / MessageClearSystem / MessageExpirySystem单帧消息 + 帧末清理
Blob 基础BlobTableBlob 辅助

四条设计红线

✕
1. 新增脚本必须连 .meta 一起提交——漏了会导致别人 clone 后 GUID 重建、引用全断。
2. Blob 里的类型必须 blittable——不能放托管对象;字符串要走 BlobString / FixedString。
3. 消息不过帧——不要指望跨帧还能读到 MessageEntity。
4. BT 编辑器代码禁止 using NodeCanvas/ParadoxNotion——只移植逻辑与视觉数值。

三条最重要的使用约定

  • 创建配置必须走 ConfigAssetFactory,创建行为树必须走 BTAssetFactory——禁止 ScriptableObject.CreateInstance<T>() + 手填 ID / GUID / TreeId。绕过工厂会导致跨工程 ID 冲突、子树引用错树。
  • 配置行必须 ref 接收:ref var row = ref ConfigManager.{Type}.GetByID(id);——值拷贝 blob 行 = 寻址错位,是运行期炸弹。
  • 生成物禁手改——一律走重新生成。
◈
想按任务一步步做(「我要配一张表」「我要写一个界面」),看 操作手册;要查某个类的具体行为,看左侧对应模块页。