5.2 KiB
5.2 KiB
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 可直接删该文件 |
三、典型集成步骤
- 把
Assets/Common/整个拷进新工程同名路径(保留 GUID/.meta 不丢引用) - 安装上面"必需"依赖(Odin / DOTween / TMP / InputSystem)
- 解决
UI/Windows/里依赖的 UI 框架,按需要替换或保留 - 在
Scriptables/Stages/*.asset里配置一关,挂场景启动入口 - 准备美术资源:
- 敌人 Prefab(带
EnemyBehavior) - 玩家 Prefab(带
CharacterBehavior) - 技能 Prefab(按
Abilities/Behaviors/*/Active Abilities/...各自的需求)
- 敌人 Prefab(带
- 在
Scriptables/Abilities/*.asset上把 Prefab 引用补全 - 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 |
永久升级存档 |
五、注意事项
- GUID 一致性:仓库带
.meta,新项目复制时保留 .meta,否则 ScriptableObject 之间的引用全部断链。 - 代码命名空间:核心命名空间为
OctoberStudio.*(来源于原素材包结构),是否改名按需要决定。 - 配置只是骨架:
Scriptables/里 62 个 .asset 是当前工程的运行配置,新项目应当复制后重新链接美术 Prefab 引用,否则会有大量Missing Reference。 - Editor 工具不在本仓库:若需要 Wave 可视化编辑、Ability Overlay 调试、Survivors Play 入口等,应当从原工程额外复制
Assets/Common/Scripts/**/Editor/子目录。
六、来源致谢
- 项目原型源自 OctoberStudio 的 Survivors 模板
- 在此基础上做了 VAT 接入 / 自定义 UI / 配置改造