从零点五开始用Unity做半个2D战棋小游戏(完)
好久不見(jiàn)。
這是第29篇與游戲開(kāi)發(fā)有關(guān)的文章。
| 寫(xiě)在最前
這次想要做一個(gè)簡(jiǎn)單且傳統(tǒng)的戰(zhàn)棋小游戲,大概的玩法是:在2D世界里創(chuàng)建一張由六邊形地塊組成的戰(zhàn)斗地圖,敵我雙方在地圖上輪流行動(dòng),并向?qū)Ψ桨l(fā)動(dòng)攻擊,先消滅掉所有敵人的一方將獲得勝利。
預(yù)計(jì)將分為以下幾篇(未完成前可能會(huì)調(diào)整...):
1、創(chuàng)建戰(zhàn)場(chǎng)(已完成)
根據(jù)預(yù)定尺寸生成戰(zhàn)場(chǎng)地圖,并隨機(jī)一些障礙物。
2、添加地圖功能 (已完成)
實(shí)現(xiàn)戰(zhàn)場(chǎng)格子點(diǎn)擊反饋,地圖導(dǎo)航及范圍選定。
3、添加對(duì)戰(zhàn)雙方(已完成)
向戰(zhàn)場(chǎng)中添加作戰(zhàn)單位,作戰(zhàn)單位輪流行動(dòng),可進(jìn)行移動(dòng)、攻擊。
4、加入玩家控制(已完成)
玩家可控制一個(gè)戰(zhàn)斗單位,手動(dòng)選擇移動(dòng)目標(biāo)及攻擊單位。
5、添加常用的界面(已完成)
建立界面管理器,加入一些常用的界面。
6、添加常用的戰(zhàn)場(chǎng)顯示(已完成)
為戰(zhàn)斗單位添加血條,加入傷害文字特效。
7、擴(kuò)展作戰(zhàn)單位(已完成)
豐富戰(zhàn)斗元素,加入并實(shí)現(xiàn)手動(dòng)釋放不同類型的技能。
8、加入AI系統(tǒng)(上)(已完成)
建立超級(jí)簡(jiǎn)單的AI系統(tǒng)。
9、加入AI系統(tǒng)(中)(已完成)
調(diào)整AI系統(tǒng)的決策方式。
10、加入AI系統(tǒng)(下)(已完成)
總結(jié)AI系統(tǒng)。
11、擴(kuò)展戰(zhàn)場(chǎng)地圖 (已完成)
豐富戰(zhàn)場(chǎng)地圖,加入地形及道具元素。
12、快速配置游戲數(shù)據(jù)
通過(guò)excel快速配置游戲數(shù)據(jù)。
本次的主題是:通過(guò)excel快速配置游戲數(shù)據(jù)。
項(xiàng)目使用的Unity版本為:Unity2018.3.0f2。
| 本次目標(biāo)
最后一篇,我們來(lái)實(shí)現(xiàn)一個(gè)入門(mén)級(jí)的數(shù)據(jù)配置工具。
| 使用excel配置數(shù)據(jù)
我們當(dāng)前游戲中的配置:角色技能、道具等,都是通過(guò)手動(dòng)創(chuàng)建ScriptableObject得到的,這在開(kāi)發(fā)初期沒(méi)什么問(wèn)題;但是當(dāng)游戲內(nèi)容逐漸豐富后,這種添加方式便不再可取。因?yàn)椴粌H在新增數(shù)據(jù)時(shí)效率很低,做大批量的編輯和數(shù)據(jù)對(duì)比時(shí)也很麻煩。
因此,我們把這些配置都放到excel中編輯,然后通過(guò)python的xlrd庫(kù)生成Json文件,最后在Unity的Editor模式下一鍵生成對(duì)應(yīng)的ScriptableObject。
在excel下編輯技能、道具數(shù)據(jù)表
通過(guò)腳本將xlsx轉(zhuǎn)換為json并導(dǎo)入工程
在Editor模式下一鍵生成對(duì)應(yīng)的ScriptableObject
由于目前的技能、道具系統(tǒng)很簡(jiǎn)單,因此表的設(shè)計(jì)也輕量化;以后當(dāng)系統(tǒng)變得復(fù)雜時(shí)(如技能中增加了buff等),表的設(shè)計(jì)也會(huì)有所調(diào)整;比如在字段中放入Json串,或通過(guò)索引建立表和表之間的關(guān)系等。
好吧,這里不會(huì)出現(xiàn)代碼;因?yàn)檫@部分內(nèi)容很簡(jiǎn)單,而且所用的二手手機(jī)靚號(hào)購(gòu)買(mǎi)腳本和關(guān)鍵代碼,都在工程里,如果有興趣的話,自取即可。
| 寫(xiě)在最后
至此,《從零點(diǎn)五開(kāi)始用Unity做半個(gè)2D戰(zhàn)棋小游戲》系列就告一段落了。
自2018年11月中旬以來(lái),開(kāi)始利用碎片時(shí)間做這個(gè)小玩具,至今已經(jīng)過(guò)了近半年的時(shí)間。文章從一開(kāi)始計(jì)劃的七篇,到完成時(shí)的十二篇;無(wú)論是時(shí)間還是精力上的投入上,都超過(guò)了預(yù)期。
從渣畫(huà)質(zhì)到3A水準(zhǔn)的演變過(guò)程
身邊也有朋友問(wèn)我,“你把時(shí)間花在這個(gè)事兒上,有意義么”。
確實(shí),項(xiàng)目的整體難度很低。但是她給我提供了不少嘗試想法的機(jī)會(huì),所以對(duì)我個(gè)人而言,是有收獲的。
至少在文章的排版上面,我自認(rèn)為比剛開(kāi)始寫(xiě)東西時(shí)成熟了一些。
而且,一直以來(lái),我都想著能給自己圈出一個(gè)小花園來(lái),如今算是把籬笆釘好了,所以對(duì)我個(gè)人而言,也是有意義的。
這并非是一個(gè)結(jié)束,而是一個(gè)開(kāi)始。
最后,分享一個(gè)自己的小經(jīng)驗(yàn):
如果希望自己能夠堅(jiān)持做一件事情,最好的方法是發(fā)朋友圈。
愿不忘初心。
下回見(jiàn)。
總結(jié)
以上是生活随笔為你收集整理的从零点五开始用Unity做半个2D战棋小游戏(完)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 从零点五开始用Unity做半个2D战棋小
- 下一篇: 扒一扒安卓渲染原理