天天看點

NavMesh尋路網格自動生成和動态障礙技術

demo視訊

在之前的自己寫的NavMesh網格尋路功能的基礎上,做了個尋路網格動态自動生成的功能,突破了Unity的自帶尋路不能動态生成尋路網格,一定要先break再用的缺點。

用法很簡單,把可以走的地形設定成一個叫做“Walk”的标簽,然後不能走的地方設定成叫“cantWalk”的标簽,然後就什麼都不用管了,直接運作即可。

NavMesh尋路網格自動生成和動态障礙技術

在沒有任何障礙物的情況下,就和之前的尋路一樣:

NavMesh尋路網格自動生成和動态障礙技術

然後直接添加一個cube,尋路就會繞過這個新增加的cube

NavMesh尋路網格自動生成和動态障礙技術

再增加一個,人物就會再繞過新的cube

NavMesh尋路網格自動生成和動态障礙技術

把路塞住,人物就繞開了路

NavMesh尋路網格自動生成和動态障礙技術

删除中間的一個cube:

NavMesh尋路網格自動生成和動态障礙技術

然後人物就可以在中間通過了,就像魔獸裡面的把樹滅掉之後,路就能通了

NavMesh尋路網格自動生成和動态障礙技術

去scene視窗看看,會發現現在的網格是這樣的:

NavMesh尋路網格自動生成和動态障礙技術

移動出來看看,這個就是我新生成的NavMesh了,其實這個東西純粹是為了讓大家看清楚才顯示出來的,沒什麼實際意義的。

NavMesh尋路網格自動生成和動态障礙技術

繼續添加cube,網格就會動态變化,變成了這樣:

NavMesh尋路網格自動生成和動态障礙技術

到現在為止,這套屬于我自己的尋路系統就越來越有實用性了。可以動态生成mesh、可以用于各種平台、随便怎樣儲存加載都可以。不過暫時還有些bug,還有些功能不太完善,以後有機會慢慢的改善吧。

再次說明,這個不是教程,隻是分享一下自己的技術成果而已。