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

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 入口,平台差异全部由框架内部吸收。
◈
数据流四阶段:生成期(模板/Excel/行为树 → 代码生成 + 数据编辑)→ 引导期 A0/A1(装单例、加载配置)→ 运行期 A2/A3(模拟、技能、AI、战斗)→ 表现期 B9(UI 最后跑,读一帧前算好的状态)。UI 永远晚一帧看到玩法改的值,这是设计,不是延迟。

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。