一款基于 Unity 开发的 2D Roguelike Arena 生存游戏,整体玩法参考《土豆兄弟(Brotato)》的单局成长与波次战斗结构。玩家在限定空间内完成移动、生存、自动攻击、商店购买与局内养成,通过不同武器与属性组合构建当局 Build。
本项目以“可扩展、可迭代、便于数值调整”为目标,采用数据驱动与模块化设计方式组织核心玩法。当前已完成角色选择、战斗主循环、波次推进、敌人生成、武器攻击、局内金币/经验成长、商店刷新与购买、暂停与结算等主要功能,具备完整可运行闭环。
- 角色选择后进入战斗场景
- 玩家通过移动与自动攻击抵御敌人
- 每波持续固定时间,结束后进入商店阶段
- 商店支持刷新、锁定、购买武器与道具
- 击杀敌人可获得金币与经验,用于局内成长
- 可通过暂停、结算与重新开局完成完整单局体验
- Unity 6
- C#
- Unity Input System
- ScriptableObject 数据驱动
- 事件总线(Event Bus)
- 状态机(Game Flow State Machine)
- 对象池(Object Pool)
- 2D Tilemap
通过状态机管理游戏阶段,拆分为:
PreparingBattleRewardAndShopPauseGameOver
使波次开始、暂停恢复、结算切换和商店流程具备清晰边界,降低场景逻辑耦合。
- 玩家移动与朝向控制
- 自动武器攻击与追踪弹道
- 敌人生成、寻路追击、近战/远程攻击
- 受伤、死亡、战斗反馈事件驱动
PlayerRuntimeData管理金币、经验、等级与刷新成本- 敌人死亡后发放金币与经验
- 商店刷新消耗金币,并支持逐次递增成本
- 商店购买通过事件通知
WeaponManager/ItemManager
使用 ScriptableObject 管理:
- 角色数据
- 敌人模板
- 武器与稀有度数值
- 道具属性修改
- 波次配置
便于后续扩展角色、敌人、道具和数值平衡。
Assets/
├─ Scenes/
│ ├─ Main Menu.unity
│ ├─ Select Scene.unity
│ └─ Game Scene.unity
├─ Scripts/
│ ├─ Core/
│ ├─ Data/
│ ├─ Enemy/
│ ├─ Events/
│ ├─ GameFlow/
│ ├─ ObjectPool/
│ ├─ Player/
│ ├─ Rewards/
│ ├─ Stats/
│ ├─ UI/
│ ├─ VFX/
│ ├─ Waves/
│ └─ Weapons/
└─ Prefabs/ / Data/ / Arts/ ...
- 主菜单与角色选择流程
- 战斗主循环与波次切换
- 暂停与恢复
- 敌人生成与基础 AI
- 武器、子弹、追踪弹道
- 玩家受伤、敌人受伤、战斗反馈
- 金币、经验、等级与商店刷新成本
- 商店刷新、锁定、购买与坑位补充
- HUD、属性面板、Tooltip、结算界面
- 完善掉落物拾取与吸附反馈
- 增加更多武器、敌人与角色差异化
- 打磨音效、特效、受击反馈与界面表现
- 完善局内升级奖励与更完整的 Build 体系
- 优化数值平衡与美术统一性
- 使用 Unity 打开项目根目录
- 进入
Assets/Scenes/Main Menu.unity - 运行项目开始体验
本项目不仅是一个可运行的玩法原型,也作为个人在 Unity 2D 动作生存、数据驱动设计、状态机流程控制与系统模块化拆分方面的实践项目,目标是持续打磨为可用于作品集展示的完整游戏 Demo。