# RoguelikeKit 一套 **类幸存者(Vampire Survivors-like / 肉鸽生存)** 的 Unity 运行时代码 + ScriptableObject 配置,可作为新项目的肉鸽核心起点直接复用。 > 仓库**仅包含代码与配置**(共 ~636 个 .cs / .meta + 62 个 .asset),不包含任何美术资源(贴图、模型、动画、Prefab、音效、Atlas、VFX、VAT 烘焙产物)。 > 代码中引用的素材路径需要在新项目里自行替换或重连。 --- ## 一、目录与模块 ``` Assets/Common/ ├── Scripts/ │ ├── Abilities/ (102 files) 主动/被动技能、进化、技能管理器、技能 UI │ ├── Boss Fight/ ( 7 files) Boss 出战调度、BossType、BossfightData │ ├── Drop/ ( 11 files) 宝石、金币、补给、磁吸拾取 │ ├── Enemies/ ( 29 files) 敌人行为、Boss 蟹/面具/巨史莱姆、出生器、VAT 接入 │ ├── Player/ ( 12 files) CharacterBehavior、CharacterData、玩家移动/HP/经验 │ ├── Rendering/ ( 2 files) RendererAdapter(SMR↔VAT 统一适配) │ ├── Stage/ ( 16 files) StageField、关卡数据、PresetData │ ├── Toolkit/ ( 43 files) Input、Vibration、通用工具 │ ├── UI/ ( 26 files) Lobby/Settings/Pause/Currency 等运行时 UI │ ├── Upgrades/ ( 5 files) 永久升级、UpgradesSave │ ├── Wave/ ( 15 files) BurstWave、MaintainWave、WaveAsset 调度 │ └── XP/ ( 3 files) 经验曲线 └── Scriptables/ ├── Abilities/ (39 .asset) 全部技能/进化/装备 Data ├── Stages/ ( 6 .asset) 关卡 / Boss 战配置 ├── Upgrades/ ( 6 .asset) 永久升级配置 ├── Testing/ ( 1 .asset) └── Input/ Input 模板(无 .asset,仅 .meta) ``` 排除内容(**不在仓库内**): - `Editor/` 目录里的全部编辑器扩展代码(WaveEditor、AbilitiesOverlay、自定义 menu 等) - Prefab / 贴图 / 模型 / 动画 / 音效 / Atlas / VFX - VAT 烘焙产物 `_VAT_Baking/Output/` - 美术素材包 `Assets/art/`、`Assets/Res/` - 第三方插件 `Assets/Plugins/` --- ## 二、依赖说明 新工程引入这套代码前,需要先准备: | 依赖 | 用途 | 备注 | |---|---|---| | Unity 2022 LTS 及以上 | — | 推荐 2022.3+ | | **Odin Inspector**(Sirenix) | 大量 ScriptableObject 上使用了 `[ShowInInspector]` / `[BoxGroup]` 等特性 | 不装会编不过 | | **DOTween**(Demigiant) | UI / 抖动 / 数值缓动 | 用 Free 或 Pro 均可 | | **TextMeshPro** | UI 文本 | Unity 自带,需 Window→TMP→Import TMP Essentials | | **Unity Input System** | `Toolkit/Input/` 模块 | 需要在 Player Settings 切换 Input 为 Both 或 New | | (可选) **YIUI / IceMark** | 仅 `UI/` 部分窗口用到 | 不用就替换为自己的 UI 框架 | | (可选) **AnimMapBaker + UnityMeshSimplifier** | 仅 `Enemies/EnemyVATAttachment.cs` 用到(VAT 接入) | 不需要 VAT 可直接删该文件 | --- ## 三、典型集成步骤 1. 把 `Assets/Common/` 整个拷进新工程同名路径(保留 GUID/.meta 不丢引用) 2. 安装上面"必需"依赖(Odin / DOTween / TMP / InputSystem) 3. 解决 `UI/Windows/` 里依赖的 UI 框架,按需要替换或保留 4. 在 `Scriptables/Stages/*.asset` 里配置一关,挂场景启动入口 5. 准备美术资源: - 敌人 Prefab(带 `EnemyBehavior`) - 玩家 Prefab(带 `CharacterBehavior`) - 技能 Prefab(按 `Abilities/Behaviors/*/Active Abilities/...` 各自的需求) 6. 在 `Scriptables/Abilities/*.asset` 上把 Prefab 引用补全 7. Boot 一关跑通 → 接 Wave/Boss/Upgrade --- ## 四、关键运行时入口 | 文件 | 作用 | |---|---| | `Stage/StageFieldManager.cs` | 关卡总调度(环境/陷阱/资源点) | | `Stage/StageData.cs` | 关卡 ScriptableObject | | `Wave/WaveAsset.cs` | 一关的怪物波次定义(含 BurstWave / MaintainWave) | | `Enemies/EnemiesSpawner.cs` | 敌人出生器,按 Wave 配置实例化 | | `Player/CharacterBehavior.cs` | 玩家角色行为(移动 / HP / 经验 / 死亡) | | `Abilities/Data/AbilityManager.cs` | 技能仓库总管(升级窗口、合成进化、运行时实例化) | | `Drop/Gem/DropBehavior.cs` | 掉落物 + 磁吸 | | `Upgrades/UpgradesSave.cs` | 永久升级存档 | --- ## 五、注意事项 1. **GUID 一致性**:仓库带 `.meta`,新项目复制时**保留 .meta**,否则 ScriptableObject 之间的引用全部断链。 2. **代码命名空间**:核心命名空间为 `OctoberStudio.*`(来源于原素材包结构),是否改名按需要决定。 3. **配置只是骨架**:`Scriptables/` 里 62 个 .asset 是当前工程的运行配置,新项目应当复制后**重新链接美术 Prefab 引用**,否则会有大量 `Missing Reference`。 4. **Editor 工具不在本仓库**:若需要 Wave 可视化编辑、Ability Overlay 调试、Survivors Play 入口等,应当从原工程额外复制 `Assets/Common/Scripts/**/Editor/` 子目录。 --- ## 六、来源致谢 - 项目原型源自 OctoberStudio 的 Survivors 模板 - 在此基础上做了 VAT 接入 / 自定义 UI / 配置改造