103 lines
5.2 KiB
Markdown
103 lines
5.2 KiB
Markdown
# 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 / 配置改造
|