1. 程式人生 > >[Unity3D]A*演算法、導航網格、路徑點尋路對比(A-Star VS NavMesh VS WayPoint)

[Unity3D]A*演算法、導航網格、路徑點尋路對比(A-Star VS NavMesh VS WayPoint)

在Unity3d中,我們一般常用的尋路演算法: 1.A*演算法外掛 與貪婪演算法不一樣,貪婪演算法適合動態規劃,尋找區域性最優解,不保證最優解。A*是靜態網格中求解最短路最有效的方法。也是耗時的演算法,不宜尋路頻繁的場合。一般來說適合需求精確的場合。 與啟發式的搜尋一樣,能夠根據改變網格密度、網格耗散來進行調整精確度。 使用較好的地方: a.策略遊戲的策略搜尋 b.方塊格子游戲中的格子尋路 2.U3D自帶的導航網格系統 U3D內建了NavMesh導航網格系統,一般來說導航網格演算法大多是“拐角點演算法”,具體大家可以去查下。效率是比較高的,但是不保證最優解演算法。 使用較好的地方: a.遊戲場景的怪物尋路 b.動態規避障礙 3.WayPoint尋路外掛
速度最快,但相應來說表現也非常侷限,它常常走“Z”型的軌跡,並不適合複雜場合的使用。例如它不能根據寬度、高度、路徑點耗散等來改變行進路徑。 使用較好的地方: a.塔防怪物行進路徑 b.AI巡邏路線 大概簡單一說,其實大家心裡都會有個底,什麼情況用什麼。並沒有說一種尋路可以通吃所有場合或想適應所有場合。選擇都是基於需求而定。