资源管理:当前是“配置内建 + Demo 极简资源”,还不是完整资源系统
源码里没有 Addressables、AssetBundle、Prefab 加载器或资源生命周期管理器。核心资源概念主要体现为内建配置数据;Demo UI 只通过 Resources.GetBuiltinResource 取 Unity 内置字体。
当前资源形态
| 资源/配置 | 当前位置 | 管理方式 | 评价 |
|---|---|---|---|
| 普通骰子面 | LuckyDiceDefaultConfig | 硬编码默认集合:2、3、4、5、6、clover。 | 适合第一版可测闭环,不适合策划热改。 |
| Lucky Dice 结果 | LuckyDiceDefaultConfig | 硬编码 rocket、thief 和默认 slot count。 | 语义清楚,但还缺图标/Prefab 资源绑定。 |
| 规则表 | ComboRuleDefinition | 定义行加载为运行时 ComboRule。 | 已经具备迁移到 JSON/ScriptableObject 的形状。 |
| 目标模式映射 | TargetModeDefinition | result key + target key -> mode key。 | 适合作为玩法启动器的配置入口。 |
| Demo 字体 | LuckyDiceDemoController | Resources.GetBuiltinResource<Font>("LegacyRuntime.ttf")。 | 仅 Demo 兜底,不是业务资源系统。 |
资源边界判断
当前框架刻意把核心运行时做成纯 C#,所以资源加载不能直接放入 Runtime 核心。真正落地生产时,建议在 Unity 接入层增加“配置提供者”和“表现资源解析器”:
Runtime Core 只认识 ResultKey / TargetKey / ModeKey / DiceFace Unity Integration Layer ResultKey -> Icon Sprite / Animation / Prefab TargetKey + ModeKey -> Scene / Controller / Launcher Remote or Local Config -> ComboRuleDefinition / LuckyDiceCandidateDefinition
后续资源系统建议
配置资源
把 ComboRuleDefinition、LuckyDiceCandidateDefinition、TargetModeDefinition 迁移为 JSON、ScriptableObject 或远端表时,保持先校验再创建 runtime config。
表现资源
新增一个独立的 Unity 层映射:ResultKey -> icon/prefab/animation,不要让 Runtime 持有 Sprite 或 GameObject。
目标玩法资源
由 TargetModeEntry 驱动目标玩法 launcher,launcher 再决定加载 scene、panel、prefab 或 addressable。
资源失败处理
资源加载失败应回到表现层兜底;核心选择结果不应因为图标缺失而改变。
证据
- Packages/manifest.json:项目含
com.unity.modules.assetbundle,但源码未发现实际 AssetBundle/Addressables 使用。 - LuckyDiceDefaultConfig.cs:65-88:普通骰子和 Lucky Dice set 由代码内建。
- LuckyDiceDefaultConfig.cs:151-238:规则、候选和 target mode 默认定义在代码中。
- LuckyDiceDemoController.cs:244:Demo 唯一明确资源读取是内置字体。
- rg Addressables/AssetBundle/LoadAsset:当前 FishDice 源码没有业务资源加载器证据。