日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

进击的新版NavMesh系统:看我飞檐走壁

發布時間:2025/6/17 windows 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 进击的新版NavMesh系统:看我飞檐走壁 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0x00 前言

unity5.6作為Unity5最后的一個版本,的確起到了一個承上啟下的作用。除了上一篇文章《進擊的AssetBundles和它的工具們》中提到的AssetBundles-Browser,本文還會介紹另一個在Github開源的,用于Unity5.6+的新尋路功能。

0x01 曾經的痛點

Unity5.6之前的navmesh系統的確操作起來十分容易上手,門檻很低。我們只需要將場景內需要烘焙navmesh的區域勾選上Navigation Static選項,之后就可以在Navigation窗口中烘焙整個場景了。

但是曾經的navmesh系統卻也存在著一些性能上的和使用場景上的缺陷。
一個常見的問題,由于要預先烘焙場景的navmesh,因此我們很難方便的在運行時動態的修改navmesh。更不用說,有一些游戲的場景并非提前制作好的,需要在運行時動態的生成,這種情況下就無法使用navmesh了。
另一個問題是,如果場景過大的話,烘焙之后的navmesh也會保存很多數據,在運行時會造成一些內存上的開銷。
當然,拋開這些不談,另外一個讓我吐槽navmesh的一點就是,它竟然不支持垂直面的導航。

在做一些2d的platform游戲時,我很希望能利用navmesh來實現尋路的邏輯。(圖文無關)
但是,不幸的是,之前的navmesh是不支持的。

0x02 組件化的navmesh

不過還好,雖然新的navmesh系統并沒有隨著unity的正式版本一同發布。但是,我們還是可以通過github來獲取這些新的功能:

NavMeshComponents

需要注意的是,Unity的版本要求在5.6以上。

我們可以看到,其實這里只有4個高層的C#腳本文件:


利用這4個腳本文件,就能基本解決我們之前的煩惱了。

其中NavMeshSurface這個腳本將navmesh組件化,利用這個組件就可以很方便的烘焙掛載該組件的對象的navmesh信息,而無需打開一個navigation窗口對整個場景進行烘焙了。我們甚至可以將掛載這個腳本的GameObject烘焙后保存為一個prefab,這個帶有navmesh信息的prefab跟其他的prefab一樣。


為對象添加NavMeshSurface組件很簡單。在這里我們可以看到和之前navigation窗口類似一些設置,但是請注意,這里已經不是整個場景烘焙了。navmesh已經組件化了,它只會烘焙掛載它的對象。

只要點擊一下這個組件下的Bake按鈕,掛載它的對象就被烘焙好了。
那么GameObject能否掛載多個NavMeshSurface組件呢?這一種需求也的確存在,例如怪物和玩家的尋路策略不同,有些地方玩家能通過而怪物卻不能通過。
這的確也是可以的,同一個GameObject能夠同時掛載多個NavMeshSurface組件,并且烘焙不同的navmesh供不同的角色使用。

這樣,我們針對不同的角色的NavMeshAgent組件設置不同的agent type并和烘焙好的兩個navmesh匹配好就可以了。

0x03 飛檐走壁

好了,借助NavMeshSurface組件我們實現了navmesh的組件化。那么是不是我們就能很方便的實現在垂直面上烘焙navmesh了呢?各位想想我們是否能很輕松的讓一個游戲對象的角度改變呢?答案是是的。那么這個游戲對象上如果有navmesh信息的話,我們只需要把這個游戲對象從水平變為垂直是否就行了呢?是的。
因此實現游戲角色的在垂直面上飛檐走壁的功能就變得十分簡單了。


當然了,在水平面的navmesh和垂直面的navmesh之間我們還會用到NavMeshLink這個組件來鏈接二者。各位自己在實踐的時候需要留意一下這一點。

0x04 在運行時烘焙navmesh

接下來就讓我們看看新的navmesh系統帶給我們的新的驚喜——在運行時烘焙navmesh。
這是一個很現實的需求,例如一些動態生成場景的游戲,我們無法在一開始就確定這個場景到底是什么樣子的,所以也無法使用之前的navmesh系統,因為以前的navmesh只能在editor內烘焙。但是現在我們使用新的navmesh系統就能夠很方便的在運行時烘焙navmesh了。


如圖,這是一個空場景,在游戲運行之后場景才生成出來場景內的各種道路,此時單擊鼠標,navmesh就生成了。
其實在新的navmesh系統內,實現這個機制十分簡單。只需要調用游戲對象上掛的NavMeshSurface組件的BuildNavMesh()方法。

void Start() {surface = GetComponent<NavMeshSurface>(); }void Update() {if (Input.GetMouseButtonDown(0)){surface.BuildNavMesh ();} }

既然navmesh已經可以在運行時創建了,那么我們能否也在運行時實例化一個navmesh的prefab,實時的影響場景內的尋路策略呢?
答案是當然可以。

0x05 場景太大不用愁

自己做過尋路算法的童靴可能會意識到一個問題,就是在做尋路時如果場景過大的話,尋路的數據可能會比較消耗內存。同樣在navmesh中,如果場景過大,或者玩家的視野范圍有限,一些對玩家當前位置影響不大的場景的其他位置的navmesh數據就有可能造成一些無謂的消耗。
在新的navmesh系統中,我們同樣可以優化這個問題,只烘焙玩家周圍的navmesh。

這里同樣需要NavMeshSurface組件,在inspector視窗我們可以選擇collect object中的volume,之后設定size的值就可以值烘焙這個范圍內的navmesh了。之后隨著玩家的移動,再動態烘焙新的navmesh就可以了。

ref:

【1】High-level NavMesh Building Components
【2】Unite Europe 2017 - Finding the path: New navigation features
各位如果覺得有趣的話,歡迎點個贊。

-EOF-
最后打個廣告,歡迎支持我的書《Unity 3D腳本編程》

歡迎大家關注我的公眾號慕容的游戲編程:chenjd01

轉載于:https://www.cnblogs.com/murongxiaopifu/p/7196788.html

總結

以上是生活随笔為你收集整理的进击的新版NavMesh系统:看我飞檐走壁的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 9.1成人看片 | 亚洲精品成人av | 精品国产精品网麻豆系列 | 日日夜夜精品免费视频 | 91久久精品夜夜躁日日躁欧美 | 国产精品正在播放 | 大地资源中文在线观看免费版 | 中文字幕一区二区人妻电影丶 | 18禁一区二区 | 一区二区三区蜜桃 | 有码一区二区 | 综合久久影院 | 亚洲国产成人精品激情在线 | 一区二区亚洲精品 | 91在线免费视频观看 | 三级第一页 | 亚洲精品入口 | 天天躁夜夜躁狠狠是什么心态 | 亚洲第二色 | 91成年视频 | 亚洲av无码一区二区三区在线观看 | 国产黄a三级 | 国产一区二区三区成人 | 国内久久 | 噜噜噜色 | 影音先锋国产资源 | 美女一区二区三区 | 黄色免费网页 | 国产午夜一级 | 中文字幕最新在线 | av第下页| 午夜免费观看视频 | 国产无遮挡又黄又爽免费网站 | 久久免费播放视频 | 亚洲一区二区三区在线视频 | 一区二区中文在线 | 中文字幕一区二区三区免费 | 日韩女同互慰一区二区 | 久久久精品动漫 | 中文字字幕在线中文乱码 | 夜夜摸视频网 | 免费男女视频 | av黄色在线播放 | 91禁在线看 | 中文在线中文资源 | 色久月 | 中文字幕精品一区二区三区精品 | 国产精品爽爽久久久久久 | 韩国三级丰满少妇高潮 | 亚洲天堂手机在线 | 99久久综合网 | 欧美成人激情视频 | 成人一区二区免费视频 | 欧美熟妇激情一区二区三区 | 亚洲人午夜射精精品日韩 | 都市激情中文字幕 | 日本欧美精品 | 伊人久久大香线蕉av色婷婷色 | 蜜臀av性久久久久蜜臀av麻豆 | 亚洲欧美日韩图片 | www午夜视频 | 在线日韩免费 | 桃色视频在线 | 91黄色在线视频 | 日韩r级电影在线观看 | 日本少妇bbb | 五月婷婷操 | 国产一线天粉嫩馒头极品av | 99九九热 | 丰满少妇被猛烈进入无码 | 在线视频精品一区 | 国产一级一片免费播放 | 欧美a在线观看 | www.亚洲一区二区三区 | 亚洲AV无码精品色毛片浪潮 | 999色综合 | 国产情侣久久久久aⅴ免费 caoporn成人 | 国产97色| 日韩精品一区二区三区不卡在线 | 134vcc影院免费观看 | 国产a网| 午夜亚洲 | 手机在线观看av片 | 天堂在线观看 | 天天骑夜夜操 | 情侣自拍av | 亚洲国产精品狼友在线观看 | 亚洲毛片在线观看 | 深夜福利免费视频 | 亚洲区精品 | 国产二区三区视频 | 中国女人性猛交 | 台湾av在线播放 | 欧美va天堂 | 成人妇女淫片aaaa视频 | 麻豆成人网 | 都市乱淫| 蜜桃视频久久一区免费观看入口 | 亚洲久热 |