TowerDefense GameFramework 塔防 Demo
基于 Unity 开源框架 GameFramework 重写并扩展的塔防游戏 Demo,原型来自 Unity 官方 Tower Defense Template,涵盖热更新、分包下载、本地化等完整工程实践。
爱鲜报评分
0 人评分
2.1k
星数
是
中文
C#
主语言
是
活跃
1
贡献者
人工分析
EDITORIAL推荐理由
这是学习 GameFramework 的优质实战项目,作者用塔防玩法把 GF 的流程、实体、UI、资源、热更等模块串成了一条完整链路。相比单纯读框架源码,通过一个可运行的游戏 Demo 更容易理解各模块如何协作。仓库 Star 数较高,配套有知乎源码解析专栏,适合 Unity 中高级开发者进阶参考。
适用场景
- 学习 GameFramework 框架的整体架构与模块用法
- Unity 商业级项目的资源打包、热更新与分包下载实践
- 塔防类游戏原型开发与玩法参考
- 搭建自己的 Unity 游戏工程脚手架
优点
- 完整覆盖 GF 的流程、实体、UI、事件、对象池、引用池等核心模块
- 包含资源打包、0 冗余 0 循环引用、热更新与关卡分包下载等工程化内容
- 数据用 Excel 配置并导出二进制,本地化通过资源变体实现,规范度高
- 作者提供知乎源码解析专栏,学习路径清晰
- Star 与 Fork 数量可观,社区参考价值较高
缺点
- Unity 版本较旧(2019.4.1f1),升级到新版 Unity 可能需要适配
- Editor 模式默认不读取 AB 包,测试热更需要手动切换 Resource Mode 并部署资源
- 仓库未声明 License,商用前需谨慎确认授权
- 需要一定 Unity 与 C# 基础,纯新手直接上手门槛偏高
项目简介
TowerDefense-GameFramework-Demo 是一款基于开源框架 GameFramework(简称 GF)实现的塔防游戏 Demo。原型取自 Unity 官方在 Asset Store 上发布的 Tower Defense Template,作者用 GF 对其进行了重新实现与扩展,主要用于个人学习实践,也为其他学习 GF 的开发者提供参考。
项目使用 C# 编写,版本信息如下:
- Unity 2019.4.1f1
- GameFramework 2020.12.31
- Tower Defense Template 1.4
游戏玩法
游戏为塔防类型,共五个关卡,每关的地形、敌人与可用塔各不相同。玩家消耗能量建造并升级防御塔,阻止敌人抵达基地。
能量
关卡开始时拥有少量初始能量,通过击杀敌人或建造能量塔获取更多能量,用于建造和升级防御塔。
防御塔
- 加农炮塔:高射速、低伤害
- 火箭炮塔:高 AOE 伤害,仅攻击地面敌人
- 激光炮塔:低射速、高伤害、远射程
- 能量塔:周期性产生能量
- 电子脉冲塔:对附近敌人附加减速效果
- 导弹阵列:大范围高额伤害,存在 10 秒后自毁
所有塔均可升级,升级后提升射程、伤害、减速效率或能量产出。
敌人
包括虫子、直升机、坦克、Boss 以及对应的超级版本。敌人通常不会攻击塔,但当塔完全堵死道路时会转而攻击塔;直升机可直接越过塔。因此合理利用地形制造迂回路线,是延长敌人行进距离的关键策略。
胜负判定
消灭关卡全部敌人且基地血量不为 0 即通关,并按基地剩余血量评分;基地血量归零则失败。
框架实践要点
项目用到了 GF 的多个模块,包括全局配置、数据表、实体、事件、文件系统、有限状态机、本地化、对象池、引用池、流程、资源、场景、游戏配置、声音与 UI 等。
数据配置
游戏内所有数据以 Excel 形式配置,导出为二进制文件后在运行时加载读取。
本地化
借助本地化模块与资源模块中的变体(Variant)实现多语言支持。
引用池
项目中大量重复使用的对象通过引用池缓存,避免频繁内存分配。
资源打包与热更新
已完成全部资源的打包配置,分包信息与文件系统设置正确,内置分析工具可做到 0 冗余、0 循环引用。游戏启动时会检测版本并更新基础资源,每个关卡资源单独分包,进入关卡前才下载对应资源。
注意事项
在 Editor 下默认以 Editor 模式启动,即直接读取工程内资源,不读取 AB 包也不执行更新。若要测试更新模式,需要在 Base 组件中取消 Editor Resource Mode,并确保 Resource 组件的 Resource Mode 为 Updatable,随后打包并部署资源(可借助 HFS 等工具在本地测试)。
学习建议
作者在知乎开设了 GameFramework 源码解析专栏,建议结合专栏与 Demo 源码对照阅读,先理解流程与资源模块,再逐步深入到实体、UI 与热更新部分。
评论
- 暂无评论,来写第一条吧。