7FOREST17
返回项目列表

Unity · Survival Shooter / Tower Defense / CASE STUDY

3D 生存射击游戏

基于 Unity 开发的一款 3D 生存射击与塔防结合游戏,玩家可以选择不同英雄和关卡,通过角色攻击、防御塔建造升级抵御多波丧尸进攻,保护主塔并完成关卡结算。

UnityC#Unity 游戏开发生存射击塔防
查看 GitHub 源码
职责
玩法与系统开发
周期
2025.01 – 2025.03
状态
源码可查看

PROJECT / 01

3D 生存射击游戏

技术概念示意 · 非实机截图

观看作品演示
BASETOWER / AIPLAYERBUILD. DEFEND. SURVIVE.
01

关键难点

组织角色攻击、防御塔建造升级和多波丧尸进攻的完整关卡流程,协调数据、UI、资源消耗、怪物状态及胜负结算。

02

解决方案

使用 GameDataMgr、UIManager 和 GameLevelMgr 管理数据、界面和关卡;以碰撞检测、射线检测及动画事件衔接战斗逻辑,通过 NavMeshAgent + Animator 实现怪物行为;以对象池复用怪物、特效和音效,使用 StreamingAssets + JSON + Excel 读取配置,并通过 Application.persistentDataPath 保存进度。

03

结果与证据

实现英雄与关卡选择、玩家射击、防御塔建造升级、多波丧尸生成、背包道具使用和胜负结算;使用 Unity Profiler 分析 CPU、内存和 GC 开销,并结合对象池减少频繁创建与销毁对象造成的性能波动。

RESPONSIBILITY HIGHLIGHTS

个人贡献

  • 战斗系统:实现玩家射击攻击以及防御塔单体、群体攻击逻辑,通过碰撞检测和射线检测判断攻击目标,并结合攻击间隔、伤害、命中反馈和音效完成战斗闭环。
  • 管理器架构:采用单例模式封装 GameDataMgr、UIManager 和 GameLevelMgr,统一管理全局数据、UI 面板、关卡初始化、怪物波次、防御塔建造和胜负结算流程,减少跨模块之间的耦合。
  • 怪物 AI:基于 NavMeshAgent + Animator 实现怪物移动、寻路、攻击、受伤和死亡状态,通过刷怪点和怪物列表管理多波丧尸生成,并根据刷怪状态和场上怪物数量判断关卡胜负。
  • 塔防系统:实现防御塔建造、升级和资源消耗逻辑,根据炮塔类型支持单体攻击和范围攻击,并通过目标检测、攻击范围和攻击间隔控制炮塔行为。
  • 动画控制:使用 Animator 状态机管理玩家和怪物的待机、移动、攻击、受伤、死亡等动画状态,通过 Bool 和 Trigger 参数实现角色状态切换,并利用动画事件触发实际攻击逻辑。
  • 对象池:封装对象池系统,对怪物、攻击特效、命中特效和音效对象进行统一创建、复用和回收,减少频繁 Instantiate/Destroy 造成的 GC 和运行时开销。
  • 数据配置:使用 StreamingAssets + JSON + Excel 维护角色、怪物、关卡和防御塔数据,运行时通过 JSON 读取配置,实现数据与代码分离。
  • 本地存档:使用 Application.persistentDataPath 保存金币、已解锁英雄、背包道具和音量配置,实现本地数据持久化。
  • UI 系统:基于 UGUI 封装通用面板管理系统,通过 Resources 动态加载界面,使用 CanvasGroup 实现面板淡入淡出效果,完成角色选择、关卡选择、建塔面板、背包界面和结算界面。
  • 背包系统:扩展背包数据和道具使用逻辑,支持关卡奖励入库、道具数量显示和快捷键使用,实现急救包、手雷和金币箱等消耗品功能。
  • 性能分析:使用 Unity Profiler 分析怪物刷波、特效播放、对象创建、UI 刷新过程中的 CPU、内存和 GC 开销,并结合对象池降低运行时频繁分配造成的性能波动。
在线试玩暂未上传
继续浏览其他项目