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

示例集 HYCSimple

框架自带的最小可用示例:7 个模块各一份可运行代码,覆盖属性、配置、行为树、本地化、场景引导、输入组件化、Cinemachine 双屏相机。

每个子系统目录都有一份 AI-NOTES.md,讲清「怎么接入、菜单路径、雷区」——这是框架对外教学的事实入口。

两种引入方式(二选一)

方式做法落到哪
官方Package Manager → Samples → HYCSimple → ImportAssets/Samples/com.hyc.framework/<版本>/HYCSimple/
菜单快捷HYC Framework/Samples/Import HYCSimple(全量重拷)Assets/HYCSimple/
⚠
两路别同时用,否则同一批类型编译两次 → CS0101。另外不要把示例拷进 Assets/Samples/<包名>/:那是 Package Manager 保留区,包未解析时 Unity 扫到就停,Project 窗口展开为空且不报错。

示例默认「不自动运行」

✕
所有 *DemoSystem 都标了 [DisableAutoCreation],Unity 不会自动把它们拉进 World。原因:框架的 Manager(Localization / Config / BT)是进程级静态单例,示例 System 一旦偷偷自启,就会在宿主工程毫无察觉的情况下改写它们。

真实事故一次:宿主已在 [RuntimeInitializeOnLoadMethod] 阶段加载了自己的 18 条本地化 key,示例却在第一次 OnUpdate 里执行 LocalizationManager.Reload(示例目录) —— 宿主张表当场蒸发,主菜单全线 未找到Key : xxx,且因为示例每帧兜底,宿主怎么重导都会被下一帧洗掉,极难定位。

由此定下三条硬规矩:

  1. 示例 System 一律 [DisableAutoCreation],由 HYCSimpleSceneBootstrap(MonoBehaviour)显式手动 Update。
  2. 示例不得抢占宿主已加载的全局单例:CanTakeOver() 会在「全局表已有非示例数据」时跳过 Reload 并打印醒目警告。
  3. 想跑示例就新建一个空场景,把 HYCSimpleSceneBootstrap 挂到任一 GameObject 上再 Play;宿主工程什么都不挂就零副作用。

一键生成真实资产

进 Unity 后先跑 HYC Framework/Samples/创建全部示例资产,会生成:

  • Assets/HYCSampleTrees/HYCSimpleDemoTree.asset(BT 树)+ 导出 StreamingAssets/BTBlob/*.blob
  • Assets/HYCSampleSampleAssets/GameAttrCatalog.asset(属性目录)+ GameHeroSet.asset(属性预设)

之后进 Play,BT / Attr 示例系统就会读取这些资产跑真实链路。

编译 / Assembly 说明

示例自带两个 asmdef,导入后编译成独立程序集(不污染你的 Assembly-CSharp):

  • HYCSimple.asmdef(根,运行时,含 Attr/Config/BT/Loc/Scene):allowUnsafeCode: false。Loc 示例已改用 Unity 内置 BlobBuilder.AllocateString(2022.3 / Entities 1.0 已按 UTF-8 真实字节数分配,中文不再截断,且是安全 API),因此不需要在 Player Settings 里开「Allow unsafe code」,也不会出现 CS0227。
  • BT/Editor/HYCSimple.Editor.asmdef(仅编辑器):放建树 / 建资产 / 数据创建脚本,引用 HYC.Framework.Editor + HYC.Framework.Runtime。
⚠
不要删除这两个 asmdef:删了示例就会退回 Assembly-CSharp,与旧 PM 副本同批类型重复 → CS0101。

七个示例分别讲什么

◈
全部示例尚未在 Unity 编译验证(框架侧 C# 也在等 Unity 编译)。导入后请按各 AI-NOTES.md 的验证清单跑一遍。