不太懂自動尋路原理的,請先閱讀下面的鏈結內容,我自己看了後是受益匪淺,本片文章就是其中最基礎的dijkstra演算法。(dijkstra怎麼念?)
人工智慧: 自動尋路演算法實現(四、d、d*演算法)
正文:
要實現的功能是:在棋盤類的2d地形中,繞過障礙找到目的地,從a到b。如下圖:
先繪製地圖,已知地圖大小為 12x12,每個點的屬性為:x值、y值、是否有障礙、是否被檢測過、他的父系點。
建立點的類,命名point:
public
class
point
建立地圖:
point[
,] pointmap;
public
vector2int size;
void
unitmap()
}//新增障礙
for(
int i =
4; i <
8; i++
)for
(int i =
3; i <
8; i++
)for
(int j =
4; j <
10; j++
) pointmap[4,
9].barrier =
true
; pointmap[4,
10].barrier =
true
; pointmap[6,
3].barrier =
true
; pointmap[9,
7].barrier =
true
;}
設定起點和終點
point startpoint;
point endpoint;
void
unit_startpoint_and_endpoint()
建立暫時容納point的list,儲存即將向四方擴散的point,在進行擴散時,將這些點設定為擴散出來的點的父系,同時改變這些點的被檢測狀態open為false,避免下次擴散時重複。(point是點的意思)
再建立乙個list,來容納路徑點的x值和y值。
list waypointstem;
list vi_waypoints;
建立 尋找從a到b的路徑的方法。
void
findtheway()
//找到終點後,從終點開始往前推,將父系的x值y值依次壓入路徑vi_waypoints
num =0;
while
(lastwaypoint != startpoint && num <
200)
//結束
debug.
log(
"finded");
}//四方擴散找終點
point
circlewaypointtemtofindtarget
(int x_end,
int y_end)
}point wpleft =
null;if
(waypointstem[i]
.x -
1>=0)
}point wpup =
null;if
(waypointstem[i]
.y +
1< size.y)
}point wpdown =
null;if
(waypointstem[i]
.y -
1>=0)
}//若無終點,則將四面 無障礙 無重複的點壓入新的 waypointstem,並且設定好他們的父系
if(wpright!=
null
&& wpright.open ==
true
&& wpright.barrier ==
false)if
(wpleft!=
null
&& wpleft.open ==
true
&& wpleft.barrier ==
false)if
(wpup !=
null
&& wpup.open ==
true
&& wpup.barrier ==
false)if
(wpdown !=
null
&& wpdown.open ==
true
&& wpdown.barrier ==
false)}
//替換 waypointstem
waypointstem.
clear()
; waypointstem = waypointstemnew;
return
null;}
return
null
;}
結束*注:沒有對**進行檢測,可能會有些小錯誤。 Unity2D 渲染層級
渲染層級 camera 攝像機 depth 值越高物體越在上面 在同乙個camera中 sorting layer 越在下面的sorting layer 越在上面 例如 player 層物體顯示在default層物體的上面 最後 order in layer 誰的數值大,誰在上方 一般設計思路 第一...
Unity2D動畫繫結
這次做了乙個unity的2d動畫,記錄一下,怕下次忘了怎麼做。首先是先決條件,推薦使用unity2019.2或更高版本,安裝 2d animation 和 2d psd importer 包。官方文件 資源檔案需要 psb 格式,直接使用ps另存為psb格式就可以了。我是線在手機上隨便畫了乙個,然後...
unity2D關節筆記
distance joint 2d 距離關節 重複部分不重覆記錄 用來限制兩物體的距離,可以根據其物理特性做旋轉運動。擺錘 enable collision 被關節連線的兩個物體是否能相互碰撞。connected rigid body 附加關節的物體所要連線的另一物體。auto configure ...