更新日期:2020年7月9日。
项目源码:在终章发布免责声明:超级坦克大战使用的图片、音频等所有素材均有可能来自互联网,本专栏所有文章仅做学习和教程目的,不会将任何素材用于任何商业用途。
索引
- 【系列简介】
- 【游戏简介】
- 【游戏背景】
- 【最终效果预览】
- 本章最佳实践
- 正式开始
- 新建项目
- 导入框架
- 导入后的设置
- 建立分类文件夹结构
- 新建入口场景
- 新建框架主环境
【系列简介】
本系列会基于HTFramework框架开发一个名为超级坦克大战的小游戏,他同时也将作为HTFramework最佳实践的一个例子,我将最大程度建立可扩展性,你完全可以基于他继续完善、丰富内容。
【游戏简介】
超级坦克大战是一款2D俯视角闯关游戏,用户可以控制自己的坦克进行作战和闯关,有多种多样的坦克可供选择,包括携带有自己所属的超级武器的各种超级坦克,也可以为任意坦克装载常规武器、超级武器、能量护盾等,以搭配出不同程度的战斗力。
【游戏背景】
未来科技实验室的超级坦克计划泄露,该计划所涉及到的数百张极密超级坦克图纸被各大军火商秘密贩卖,至此,各种各样的超级坦克逐渐现世…
【最终效果预览】
超级坦克大战的最终效果如下,很多简单但却能提升游戏性的小细节还可以进行丰富,不过这不在本教程的范畴内:
【Unity小游戏教程】超级坦克大战(CSDN博客教程外链视频)
本章最佳实践
- 导入HTFramework框架。
正式开始
本章我们将从零开始搭建一个HTFramework框架的初始环境。
新建项目
我们打开Unity Hub新建项目(推荐使用Unity 2018.3.0版本开发,以达到框架最大兼容性),项目名称命名为TankWar:
导入框架
- (新手模式)我们可以进入框架的Github源码地址的发行页直接下载最新发布的.unitypackage后缀的包,导入项目即可,如下:
- (熟手模式)如果我们的项目TankWar已经存储到了源码托管服务器,那么我们将使用为TankWar添加子模块的形式将HTFramework仓库加入到项目中(熟手可能也不知道如何添加git子模块,可以网上查阅);否则,直接使用git clone克隆整个仓库到路径TankWar/Assets/HTFramework,熟手模式的好处是你可以随时拉取框架的最新提交,他们很可能修复了诸多BUG或改善了用户使用体验。
导入后的设置
导入框架完成后,回到项目的Unity编辑器界面,可能会报如下错误:
这是源于框架使用了.NET 4.x版本接口的原因,我们按如下方式设置:
- 打开菜单栏:Edit -> Project Settings…
- 窗口左侧选择Player栏,并打开右侧的Other Settings选项卡,然后找到Api Compatibility Level选项:
- 将Api Compatibility Level选项设置为.NET 4.x:
等待Unity编辑器编译完成后,所有报错已被消灭,在Project视图中,我们如果看到HTFramework的图标在框架根文件夹的后面正确的显示了出来(推荐Unity编辑器使用如下布局:2 by 3,并在Project视图使用仅显示一列的布局方式),则表明框架已然正确导入并编译通过,如果不是这样,重新打开Unity即可:
建立分类文件夹结构
我们依据项目中所有可能用到的资源,在Project视图中分类建立各个资源存放的文件夹,比如音频、图片、字体、材质、预制、脚本等:
新建入口场景
我们将一个空场景保存为Main(删除场景中所有东西),作为游戏的入口场景,理论上,HTFramework框架的开发模式推荐整个游戏均在一个场景中完成,当然如果一定要使用多场景模式,除去Main场景会正式打包出去以外,其他场景可以以资源的形式打入AB包中,再动态载入场景:
新建框架主环境
接下来我们在Main场景的Hierarchy视图中点击鼠标右键,选择菜单HTFramework -> Main Environment,以在Main场景中创建框架的主环境:
至此,超级坦克大战的基本环境已经搭建完成,我们可以在此基础上进行接下来的开发。