六邊形網(wǎng)格地形系統(tǒng)(下)

前言
今天給大家分享的是六邊形網(wǎng)格地形系統(tǒng)的原理和技術(shù)實現(xiàn)。大家如果聽過我們前面課程的話,會知道之前我還講過一個四邊形的網(wǎng)格地形系統(tǒng)。今天的六邊形網(wǎng)格地形系統(tǒng)屬于另外一種網(wǎng)格地形系統(tǒng),是很多策略或戰(zhàn)旗類游戲當(dāng)中非常常用的一種
版權(quán)聲明
本文為“優(yōu)夢創(chuàng)客”原創(chuàng)文章,您可以自由轉(zhuǎn)載,但必須加入完整的版權(quán)聲明
更多學(xué)習(xí)資源請加QQ:1517069595或WX:alice17173獲?。ㄆ髽I(yè)級性能優(yōu)化/熱更新/Shader特效/服務(wù)器/商業(yè)項目實戰(zhàn)/每周直播/一對一指導(dǎo))
點贊、關(guān)注、分享可免費獲得配套學(xué)習(xí)資源
Step 4:讓鼠標(biāo)位置和選中的格子匹配

由于六邊形網(wǎng)格在橫向和縱向上都進行了偏移,因此無法像四邊形網(wǎng)格一樣簡單的計算鼠標(biāo)坐標(biāo)(3D World)和格子坐標(biāo)的對應(yīng)關(guān)系
這也是網(wǎng)格系統(tǒng)的難點所在
原理圖

代碼實現(xiàn)

首先通過前面這段代碼,取得鼠標(biāo)的位置
x坐標(biāo)和z坐標(biāo)構(gòu)成一個roughXZ的一個變量,然后再去判斷當(dāng)前是奇數(shù)行還是偶數(shù)


roughXZ是鼠標(biāo)當(dāng)前所在的那個格子,然后通過下面這段代碼去遍歷所有的周圍的六個格子,取得周圍六個格子在世界空間當(dāng)中的一個中心點坐標(biāo)
計算鼠標(biāo)位置跟六個格子的中心點的距離。如果它的距離是小于當(dāng)前我記錄的,鼠標(biāo)中心點靠某個格子的最小距離,那就說明我的格子是在六邊形上面的
完整代碼

如果你有基礎(chǔ),想要去完整的體驗六邊形網(wǎng)格系統(tǒng),大家可以加一下文末Alice老師,然后加入到干貨訓(xùn)練營里面的六邊形網(wǎng)格系統(tǒng)課程
如果你想要開發(fā)一款游戲,但是沒有基礎(chǔ)或者想要系統(tǒng)的學(xué)習(xí)一個大型的網(wǎng)絡(luò)游戲的制作,那么你可以去參考,我們的Unity全棧開發(fā)課程
策略類游戲、回合制游戲怎樣實現(xiàn)聯(lián)機對戰(zhàn)的聯(lián)機游玩呢?老師都會在主層進階課程里面教給大家

如何開發(fā)一款4X類型的游

關(guān)于網(wǎng)格系統(tǒng)的實踐部分我們就講完了,但是并不代表我們已經(jīng)完整的去實現(xiàn)了六邊形網(wǎng)格系統(tǒng)
后續(xù)還有一些需要去完善的內(nèi)容:
六邊形網(wǎng)格的自動尋路
回合制游戲的戰(zhàn)斗系統(tǒng)
策略游戲的游戲框架設(shè)計(數(shù)據(jù)/邏輯/UI)
資源管理、熱更新、輸入控制、性能優(yōu)化
寫在最后
本文為“優(yōu)夢創(chuàng)客”原創(chuàng)文章,您可以自由轉(zhuǎn)載,但必須加入完整的版權(quán)聲明
更多學(xué)習(xí)資源請加QQ:1517069595或WX:alice17173獲?。ㄆ髽I(yè)級性能優(yōu)化/熱更新/Shader特效/服務(wù)器/商業(yè)項目實戰(zhàn)/每周直播/一對一指導(dǎo))
點贊、關(guān)注、分享可免費獲得配套學(xué)習(xí)資源