从零点五开始用Unity做半个2D战棋小游戏(完)
好久不見。
這是第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。
| 本次目標
最后一篇,我們來實現一個入門級的數據配置工具。
| 使用excel配置數據
我們當前游戲中的配置:角色技能、道具等,都是通過手動創建ScriptableObject得到的,這在開發初期沒什么問題;但是當游戲內容逐漸豐富后,這種添加方式便不再可取。因為不僅在新增數據時效率很低,做大批量的編輯和數據對比時也很麻煩。
因此,我們把這些配置都放到excel中編輯,然后通過python的xlrd庫生成Json文件,最后在Unity的Editor模式下一鍵生成對應的ScriptableObject。
在excel下編輯技能、道具數據表
通過腳本將xlsx轉換為json并導入工程
在Editor模式下一鍵生成對應的ScriptableObject
由于目前的技能、道具系統很簡單,因此表的設計也輕量化;以后當系統變得復雜時(如技能中增加了buff等),表的設計也會有所調整;比如在字段中放入Json串,或通過索引建立表和表之間的關系等。
好吧,這里不會出現代碼;因為這部分內容很簡單,而且所用的二手手機靚號購買腳本和關鍵代碼,都在工程里,如果有興趣的話,自取即可。
| 寫在最后
至此,《從零點五開始用Unity做半個2D戰棋小游戲》系列就告一段落了。
自2018年11月中旬以來,開始利用碎片時間做這個小玩具,至今已經過了近半年的時間。文章從一開始計劃的七篇,到完成時的十二篇;無論是時間還是精力上的投入上,都超過了預期。
從渣畫質到3A水準的演變過程
身邊也有朋友問我,“你把時間花在這個事兒上,有意義么”。
確實,項目的整體難度很低。但是她給我提供了不少嘗試想法的機會,所以對我個人而言,是有收獲的。
至少在文章的排版上面,我自認為比剛開始寫東西時成熟了一些。
而且,一直以來,我都想著能給自己圈出一個小花園來,如今算是把籬笆釘好了,所以對我個人而言,也是有意義的。
這并非是一個結束,而是一個開始。
最后,分享一個自己的小經驗:
如果希望自己能夠堅持做一件事情,最好的方法是發朋友圈。
愿不忘初心。
下回見。
總結
以上是生活随笔為你收集整理的从零点五开始用Unity做半个2D战棋小游戏(完)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从零点五开始用Unity做半个2D战棋小
- 下一篇: 扒一扒安卓渲染原理