亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 軟件教程 > 正文

NavMesh尋路網格自動生成和動態障礙技術、Navmesh入門教程

2020-07-18 16:05:14
字體:
來源:轉載
供稿:網友

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

 

用法很簡單,把可以走的地形設置成一個叫做“Walk”的標簽,然后不能走的地方設置成叫“cantWalk”的標簽,然后就什么都不用管了,直接運行即可。

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

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

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

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

刪除中間的一個cube:

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

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

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

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

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

Navmesh入門教程:

先來看看怎么在unity打開NavMesh功能的窗口吧:

在window下拉列表中可以看到Navgation,點擊:

在原來Inspector面板的旁邊會出現Navigation的面板:

這個Objcet的面板是對應當前選擇的物體的,旁邊的Bake面板是對應全局選項的。結構和烘焙或者遮擋剔除是一樣的。在選擇了物體的情況下會出現上面的內容:

上面的All、MeshRenderers、Terranis是對Hirarchy面板里面顯示的物品選擇的一個篩選過濾:

all就是全部顯示

MeshRenderers是只顯示可渲染的網格物體

而Terrains當然就是只顯示地形物體了。

下面的是重要的選項,第一個Navigation Static選項是選擇該物體是否用做尋路功能的一部分。只有勾選了這個選項,下面的其他選項才會可操作。

OffMeshLink Generation選項是選擇該物體是否根據高度、可跳躍寬帶等全局的選項自動生成OffMeshLink,這個會在以后的講解中詳細說明,這次就暫時不討論。

Navigation Layer是對參與尋路功能的地圖物體的一個分類,用層來分類,默認有三個層可以選擇,當然也可以自己添加層。

在Edit下拉列表,選擇Project——NavMeshLayers

出現了NavMesh層的管理界面: 

上面三個Buit-in Layer是系統默認的三個可選擇層,我們可以在下面的User Layer里面輸入自己需要的層的名稱,比如我現在輸入一個叫做“brigde”的層

這時候,剛才輸入的“bridge”層,就會出現在可選擇的列表里面

通過剛才的幾步,NavMesh常用的幾個面板我們都已經操作過了,接下來可以做一個小例子:

在場景里面,我放了一個攝像機(Camera),一個充當地面的面片(plane),一個角色模型(man)和一個目標點物體(target)

為了便于觀察目標點的位置,我在目標點物體身上添加了Light組件讓它會發光。角色模型(man)身上必須添加NavMesh組件,不然就不能尋路了。為了方便,我使用了官方的大兵模型,里面已經帶有了動畫和動畫控制的腳本。不過這些動畫的表現暫時是不重要的,你可以選擇放一個膠囊或者Cube代替人物的模型。

還記得剛開始介紹的Navigation面板嗎?選擇地面(plane),在Navigation面板里面里面勾選Navigation Static選項,其他的默認不改動。

然后點擊右下角的Bake面板。這時候會有一個計算的過程,曾經用過烘焙或者遮擋剔除的朋友應該對這個過程很熟悉了。

不過和之前兩個功能一樣,如果你沒有保存場景level,unity會提示你先保存,然后再bake。

由于現在場景里面的物體很少,所以Bake的過程很快就結束了。

留意看scene視窗,現在地面的顏色已經發生改變了,這是因為unity已經幫你生成了尋路用的NavMesh網格,由于現在沒有遮擋的阻礙物,所以整個地面都是屬于可以行走的范圍。

寫一個最簡單的控制腳本吧,以上是C#,由于很簡單,估計用Js的朋友也能對應的寫出來。

簡單的解釋一下,這個腳本是直接拖放到角色(man)身上的,并把場景中的目標物體(target)拖放指定到該腳本的target變量上面進行了賦值。在腳本一開始的時候,我 先獲取了man身上的NavMeshAgent腳本組件,然后在Update的過程中,man不斷的進行對target的位移的一個尋路并移動到目標位置的操作。

在進行完以上的操作后,你應該已經可以點擊unity的播放按鈕,然后移動目標物體(target),這時候角色模型已經可以追著目標點跑了。

這里我還做了一個簡單的鼠標點擊plane設定目標點的功能,由于這個功能不在這次的討論范圍內,所以有興趣的朋友可以自己去百度一下具體的方法。

進行到這一步,人物已經跑起來了,但由于沒有遮擋的障礙物,所以人物只是會直線的行走,看不出尋路的感覺。接下來我們就做點更復雜的:

在場景里面添加一個Cube做為障礙物,具體的形狀和位置請根據自己喜歡來調節,阿趙我是把它做成了一個長方形,并擺在了角色面前。

和剛才對地面的操作差不多,選擇遮擋物Cube,在Navigation面板里面勾選Navigation Static選項,這次的Navigation Layer要選擇Not Walkable。顧名思義,這是不能行走的意思,代表了這個Cube是不能通過的。

選擇完成后,我們再次點擊Bake,又是一個小等待的過程。

Bake完成后,我們回到scene視窗。

觀察scene視窗,會發現剛才整個地面都是NavMesh的情況已經改變了,在障礙物的周圍,NavMesh留出了一個缺口,這代表了角色已經不能從障礙物身上通過了。

再次點擊unity的播放按鈕

現在可以看到,人物已經可以繞著障礙物走了,我們的目的已經順利達到了。

這次的例子就到此結束了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美国产视频| 国产精品久久久久久超碰| 久久香蕉频线观| 欧美日韩精品中文字幕| 欧美日韩亚洲一区二区三区| 91国在线精品国内播放| 一区二区三区视频在线| 欧美日韩一区二区免费在线观看| 亚洲欧美在线x视频| 日本成人在线视频网址| 日韩欧美在线第一页| 欧美日韩国产123| 日韩美女av在线| 欧美精品在线免费| 久久久999精品| 亚洲bt天天射| 2019亚洲日韩新视频| 精品福利在线视频| 久久久久亚洲精品国产| 国产精品 欧美在线| 亚洲成人av中文字幕| 91chinesevideo永久地址| 欧美小视频在线观看| 国产日本欧美在线观看| 夜夜嗨av色一区二区不卡| 538国产精品视频一区二区| 亚洲欧洲日产国码av系列天堂| 91av在线影院| 国产成人中文字幕| 亚洲另类激情图| 亚洲国产成人在线播放| 亚洲精品v天堂中文字幕| 深夜福利一区二区| 欧美视频在线免费| 亚洲国产精品久久久久秋霞蜜臀| 亚洲欧洲午夜一线一品| 欧美日韩国产精品| 欧美裸体xxxx极品少妇| 成人有码在线播放| 久久国产天堂福利天堂| 亚洲人线精品午夜| 日本午夜精品理论片a级appf发布| 国产精品免费小视频| 日韩精品在线第一页| 国产精品成人播放| 欧美性猛交xxxx富婆弯腰| 韩剧1988在线观看免费完整版| 91国产在线精品| 麻豆精品精华液| 欧美日韩美女视频| 国产精品免费观看在线| 136fldh精品导航福利| 色偷偷88888欧美精品久久久| 国产日韩欧美日韩| 日韩欧美亚洲一二三区| 国产精品久久久久高潮| 久久久久女教师免费一区| 91亚洲精品在线| 国产欧美日韩精品丝袜高跟鞋| 91精品国产色综合久久不卡98口| 日韩国产欧美精品一区二区三区| 国产精品极品美女粉嫩高清在线| 欧美日韩性视频在线| 一本色道久久综合亚洲精品小说| 成人黄色片在线| 都市激情亚洲色图| 国产不卡在线观看| 亚洲美腿欧美激情另类| 福利一区视频在线观看| 亚洲缚视频在线观看| 色爱精品视频一区| 日韩hd视频在线观看| 78m国产成人精品视频| 国产精品91久久| 国产97色在线|日韩| 亚洲美女自拍视频| 欧美又大又粗又长| 日韩一级裸体免费视频| 992tv在线成人免费观看| 欧美精品第一页在线播放| 国产视频久久网| 成人福利网站在线观看| 国内精品久久久久影院 日本资源| 欧美日韩国产限制| 亚洲性夜色噜噜噜7777| 亚洲女人天堂av| 国产精品美女在线观看| 欧美视频国产精品| 欧美福利小视频| 亚洲国产一区自拍| 亚洲免费视频在线观看| 国语自产精品视频在线看一大j8| 97在线视频免费观看| 国产做受高潮69| 国产精品激情av电影在线观看| 国产日产欧美a一级在线| 日韩一区二区福利| 精品国产乱码久久久久酒店| 热re99久久精品国产66热| 91免费国产网站| 国产精品美女免费| 欧美乱大交xxxxx| 中文字幕精品www乱入免费视频| 久青草国产97香蕉在线视频| 国产一区二区三区在线视频| 九九热视频这里只有精品| 日韩欧美黄色动漫| 欧美精品www在线观看| 久热精品视频在线观看一区| 69影院欧美专区视频| 精品自拍视频在线观看| 两个人的视频www国产精品| 青草青草久热精品视频在线网站| 黑人巨大精品欧美一区二区| 亚洲精品美女久久| 国产第一区电影| 精品国产一区二区三区四区在线观看| 91在线直播亚洲| 国产精品极品尤物在线观看| 亚洲人精选亚洲人成在线| 亚洲成人精品视频| 久久全球大尺度高清视频| 国产999精品视频| 国产精品18久久久久久首页狼| 中文字幕亚洲欧美日韩高清| 成人精品福利视频| 97久久超碰福利国产精品…| 高清欧美性猛交xxxx黑人猛交| 欧美日韩成人在线播放| 久热国产精品视频| 国产伊人精品在线| 一区二区三区四区在线观看视频| 国产精品福利小视频| 欧美激情2020午夜免费观看| 国产日产久久高清欧美一区| 成人看片人aa| 91国产精品视频在线| 久久久久北条麻妃免费看| 韩曰欧美视频免费观看| 国产精品偷伦视频免费观看国产| 97超级碰碰碰久久久| 亚洲白拍色综合图区| 2020久久国产精品| 一区二区国产精品视频| 91精品国产91久久久久久不卡| 奇米4444一区二区三区| 国产午夜精品免费一区二区三区| 日韩在线观看免费高清完整版| 国产成人精品最新| 亚洲精品小视频在线观看| 久久久久久久久中文字幕| 精品视频久久久| 久久在线免费视频| 国产亚洲aⅴaaaaaa毛片| 亚洲国产一区自拍| 国产日本欧美一区二区三区| 精品性高朝久久久久久久| 亚洲精品videossex少妇| 欧美精品久久久久a| 欧美日韩亚洲激情| 久久影院在线观看| 国产精品久久av| 亚洲午夜女主播在线直播| 精品少妇一区二区30p|