HYC Framework 使用文档
一个基于 Unity 2022.3 + DOTS/ECS 的数据驱动框架:配置 / 本地化 / 行为树在生成与编辑期烘焙为不可变 Blob,UI 即 ECS System,世界由引导期组装、按固定阶段更新。
本站点逐模块说明「怎么用」,所有内容基于源码实测撰写。左侧选择模块,右侧为本页目录。
它解决什么
传统 Unity 项目里,配置、本地化、UI、AI 往往是各写一套、难复用、难跨端。HYC Framework 把它们统一成一套数据驱动管线:
- 配置 / 本地化 / 行为树:编辑期是 ScriptableObject + 生成代码,运行期只有一个 Blob 指针,零分配查询。
- UI 即 System:每个界面是一个
SystemBase子类挂在固定更新组里,最后刷新(B9),不抢玩法帧。 - 一套代码跨端:PC / iOS / Android / WebGL 共用
InitializeAsync入口,平台差异全部由框架内部吸收。
5 分钟跑通
最小引导只需要一个 MonoBehaviour 和一个异步入口:
// 全平台统一入口:WebGL/Android 会先把数据 HTTP 进内存缓存,PC/iOS 上是 no-op
public sealed class GameBootstrap : MonoBehaviour
{
private async void Start()
{
await new FrameworkBootstrap().InitializeAsync("Game World");
// 之后照常:装 UI、进主菜单……
}
}
打开一个窗口(注意是异步的,初始化写在 OnViewOpen):
public class BagWindow : BaseWindowSystem<BagBinder>
{
public override string PrefabKey => "UI/BagWindow.prefab";
public override void OnViewOpen(params object[] args)
{
base.OnViewOpen();
Binder.CloseButton.onClick.AddListener(() => UIManager.Close<BagWindow>());
}
}
// 打开窗口(异步!View 在 OnViewOpen 里才就绪)
UIManager.OpenWindow<BagWindow>(1001);
// 查配置 —— 门面是唯一入口,必须 ref 接收(EA0001 铁律)
ref var row = ref ConfigManager.ItemRow.GetByID(1001);
Debug.Log(row.Name);
架构与数据流 →
数据流四阶段、模块地图、四条设计红线,先读这篇建立全局图景。
入门操作手册 →
按任务查配方:新增配置表 / 加界面 / 接音频 / 烘焙行为树,含最容易踩的 9 件事。
入门引导与世界 →
如何组装 Framework World、跨端数据加载契约、更新阶梯与模式。
入门示例集 HYCSimple →
7 个独立示例覆盖 Config / Attr / BT / Loc / Scene / Input / Cinemachine,含 AI-NOTES。
数据配置系统 Config →
模板 → 代码生成 → 数据编辑器 → 导出 Blob → 门面查询,全程类型安全零字符串键。
数据枚举配置 →
枚举即配置:编辑器维护 → 生成枚举代码 → Blob 名称映射。
数据多语言 Localization →
Excel 文案表烘焙为 Blob,运行期按 key 取文本,组件自动刷新。
数据通用属性 Attr →
配置表驱动的属性清单,代码生成 AttrKey 枚举 + 类型安全读写 Bag。
数据场景内容物 SceneContent →
场景内实体烘焙为 Blob:实例条目 + 标记组件双来源,运行期加载。
数据天赋树 Talent →
表驱动天赋树配置、前置依赖、运行期加点与解锁判定。
数据红点树 RedDot →
父子红点聚合,脏标记增量刷新,UI 侧零字符串绑定。
数据存档存储 Save →
存档槽位、序列化管线、版本兼容与迁移策略。
逻辑行为树 BT →
可视化编辑行为树 → 导出 Blob → ECS 逐帧驱动实体 AI。
逻辑帧同步 Sync →
Lockstep 确定性帧同步:P1 已落地,P2 快照重连 / P3 状态同步未做。
表现ECS UI 总览 →
窗口即 System,层级表驱动、Addressables 实例化、焦点与导航。
表现窗口系统 →
打开 / 关闭 / 层级 / 模态 / 焦点栈的完整生命周期。
表现组件绑定 →
Binder 绑定控件、数据源驱动刷新、零反射缓存。
表现输入与热键 →
两条通路:组件化轮询(Input Component)+ 事件层热键管理。
表现Cinemachine 相机 →
rig 装配、双人分屏 ViewSplitter、DualView 接缝合成。
表现过场 Timeline →
CutsceneDirector 播放队列骨架(可视化编辑器未开发)。
表现音频 Audio →
引用格式决定路由(clip:/wwise:),统一播放门面,后端可切换。
表现消息与日志 →
消息总线、ECS 日志收集、调试期可视化。
工具编辑器工具链 →
菜单项、创建器窗口、导出服务、校验闸门总览。
工具项目设置 →
HYCSettings 纯 SO 配置:UI 层集合、命名空间根、各系统开关。
工具Blob 与数据约定 →
EA0001、blittable 约束、扁平化重组模式等底层铁律。
ConfigAssetFactory、创建行为树必须走 BTAssetFactory,禁止手填 ID / GUID / TreeId;② 配置行查询必须 ref var row = ref ... 接收(值拷贝 = 运行期内存错误);③ 宿主禁止直接调用 ConfigRegistry,统一走生成式门面 ConfigManager。