Unity-自動構(gòu)建網(wǎng)格外鏈接
可自動檢測網(wǎng)格外鏈接 (Off-Mesh Link) 的一些用例。兩個最常見的用例為:_掉下 (Drop-Down)_ 和_跳過 (Jump-Across)_。
掉下鏈接的作用是從平臺上掉下。
跳過鏈接的作用是跳過縫隙。
為了自動找到跳躍位置,構(gòu)建過程沿著導(dǎo)航網(wǎng)格的邊緣行走,并檢查跳躍的著陸位置是否在導(dǎo)航網(wǎng)格上。如果跳躍軌跡暢通無阻,則會創(chuàng)建網(wǎng)格外鏈接。
讓我們來設(shè)置網(wǎng)格外鏈接的自動生成。如果您不熟悉導(dǎo)航網(wǎng)格烘焙,請查看構(gòu)建導(dǎo)航網(wǎng)格。

首先,需要標(biāo)記場景中的跳躍_起始位置_對象。為此,需要在?Navigation 窗口_中的?Objects_ 選項卡下選中?Generate Off-Mesh Links?選項。

第二步是設(shè)置掉下和跳過軌跡:
掉下鏈接的生成由 Drop Height 參數(shù)控制。該參數(shù)可控制將要連接的最高掉落高度,將值設(shè)置為 0 將禁用生成。
定義掉下鏈接的軌跡時應(yīng)使水平行程?(A)?為:_2*agentRadius + 4*voxelSize。即,掉落將剛好落在平臺的邊緣之外。此外,垂直行程?(B)?需要大于烘焙設(shè)置的?Step Height_(否則只會走下平臺)并小于?Drop Height。應(yīng)按體素大小進(jìn)行調(diào)整,確保在體素化期間的任何舍入誤差都不會阻止生成鏈接。應(yīng)將?Drop Height?的值設(shè)置得比在關(guān)卡中測量的值略大,使鏈接正確連接。
跳過鏈接的生成由?Jump Distance?參數(shù)控制。該參數(shù)可控制將要連接的最遠(yuǎn)距離。將值設(shè)置為 0 將禁用生成。
定義跳過鏈接的軌跡時應(yīng)使水平行程?(C)?大于?2*agentRadius?且小于 Jump Distance。此外,著陸位置?(D)?不得超過距離起始位置關(guān)卡的 voxelSize。
現(xiàn)在已經(jīng)標(biāo)記對象并調(diào)整了設(shè)置,因此該按?Bake?按鈕了,隨即自動生成網(wǎng)格外鏈接!當(dāng)您更改場景并烘焙時,舊鏈接將被丟棄,并將根據(jù)新場景創(chuàng)建新鏈接。
故障排除
如果未在所需位置生成網(wǎng)格外鏈接,請注意以下幾點:
Drop Height?應(yīng)當(dāng)比在關(guān)卡中測量的實際距離略大一點。這樣可確保在導(dǎo)航網(wǎng)格烘焙過程中發(fā)生的小偏差不會阻止鏈接的連接。
Jump Distance?應(yīng)當(dāng)比在關(guān)卡中測量的實際距離略遠(yuǎn)一點。Jump Distance 是從導(dǎo)航網(wǎng)格上的一個位置到導(dǎo)航網(wǎng)格上的另一個位置之間的測量值,這意味著應(yīng)加上 _2*agentRadius_(加一點)才能確??邕^縫隙。