从零点五开始用Unity做半个2D战棋小游戏(完)

发表于2019-05-06
评论10 8.3k浏览

好久不见。

 

这是第29篇与游戏开发有关的文章。

 

| 写在最前

这次想要做一个简单且传统的战棋小游戏,大概的玩法是:在2D世界里创建一张由六边形地块组成的战斗地图,敌我双方在地图上轮流行动,并向对方发动攻击,先消灭掉所有敌人的一方将获得胜利。

 

预计将分为以下几篇(未完成前可能会调整...):

 

1、创建战场(已完成)

根据预定尺寸生成战场地图,并随机一些障碍物。

 

2、添加地图功能 (已完成)

实现战场格子点击反馈,地图导航及范围选定。

 

3、添加对战双方(已完成)

向战场中添加作战单位,作战单位轮流行动,可进行移动、攻击。

 

4、加入玩家控制(已完成)

玩家可控制一个战斗单位,手动选择移动目标及攻击单位。

 

5、添加常用的界面(已完成)

建立界面管理器,加入一些常用的界面。

 

6、添加常用的战场显示(已完成)

为战斗单位添加血条,加入伤害文字特效。

 

7、扩展作战单位(已完成)

丰富战斗元素,加入并实现手动释放不同类型的技能。

 

8、加入AI系统(上)(已完成)

建立超级简单的AI系统。

 

9、加入AI系统(中)(已完成)

调整AI系统的决策方式。

 

10、加入AI系统(下)(已完成)

总结AI系统。

 

11、扩展战场地图 (已完成)

丰富战场地图,加入地形及道具元素。

 

12、快速配置游戏数据

通过excel快速配置游戏数据。

 

本次的主题是:通过excel快速配置游戏数据。

 

项目使用的Unity版本为:Unity2018.3.0f2

 

代码会上传至我的Github:https://github.com/elsong823/HalfSLG 中,有兴趣的同学请自取。

 

| 本次目标

最后一篇,我们来实现一个入门级的数据配置工具。

 

| 使用excel配置数据

我们当前游戏中的配置:角色技能、道具等,都是通过手动创建ScriptableObject得到的,这在开发初期没什么问题;但是当游戏内容逐渐丰富后,这种添加方式便不再可取。因为不仅在新增数据时效率很低,做大批量的编辑和数据对比时也很麻烦。

 

因此,我们把这些配置都放到excel中编辑,然后通过python的xlrd库生成Json文件,最后在Unity的Editor模式下一键生成对应的ScriptableObject。

 

aDFZ3m5uMBCzExB3gMhR.png

在excel下编辑技能、道具数据表

Le4iYWYpodUshweZUkiA.png

通过脚本将xlsx转换为json并导入工程

t8ZdmdBo7pemPb7ehm4P.png

在Editor模式下一键生成对应的ScriptableObject

 

由于目前的技能、道具系统很简单,因此表的设计也轻量化;以后当系统变得复杂时(如技能中增加了buff等),表的设计也会有所调整;比如在字段中放入Json串,或通过索引建立表和表之间的关系等。

 

好吧,这里不会出现代码;因为这部分内容很简单,而且所用的脚本和关键代码,都在工程里,如果有兴趣的话,自取即可。

 

| 写在最后

至此,《从零点五开始用Unity做半个2D战棋小游戏》系列就告一段落了。

 

自2018年11月中旬以来,开始利用碎片时间做这个小玩具,至今已经过了近半年的时间。文章从一开始计划的七篇,到完成时的十二篇;无论是时间还是精力上的投入上,都超过了预期。

 

jPwMlyY6cUguvpWbB1iO.png

从渣画质到3A水准的演变过程

 

身边也有朋友问我,“你把时间花在这个事儿上,有意义么”。

 

确实,项目的整体难度很低。但是她给我提供了不少尝试想法的机会,所以对我个人而言,是有收获的。

 

至少在文章的排版上面,我自认为比刚开始写东西时成熟了一些。

 

而且,一直以来,我都想着能给自己圈出一个小花园来,如今算是把篱笆钉好了,所以对我个人而言,也是有意义的。

 

这并非是一个结束,而是一个开始。

 

最后,分享一个自己的小经验:

如果希望自己能够坚持做一件事情,最好的方法是发朋友圈。

 

愿不忘初心。

 

下回见。

 

非常感谢您能读到这里,详细的代码可以移步Github(https://github.com/elsong823/HalfSLG)下载。

 

我的公众号 偶尔学学Unity 会不定期更新与游戏开发有关的文章,欢迎关注,谢谢。

5rC2hhD7zVnbOQrCURlZ.jpg


 


 


 

  • 允许他人重新传播作品,但他人重新传播时必须在所使用作品的正文开头的显著位置,注明用户的姓名、来源及其采用的知识共享协议,并与该作品在磨坊上的原发地址建立链接
  • 可对作品重新编排、修改、节选或者以作品为基础进行创作和发布
  • 可将作品进行商业性使用

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签: