簡體   English   中英

在 C# 生成的網格上從 NavMeshComponents 烘焙 Unity NavMeshSurface

[英]Baking Unity NavMeshSurface from NavMeshComponents on C# Generated Mesh

問題:
我在使用 NavMeshComponents 中提供的NavMeshSurface腳本烘焙 C# 生成的網格時遇到問題。

如果我在“WalkableMesh”游戲對象上烘焙 NavMeshSurface,烘焙很快就會結束,沒有什么是可步行的。 NavMeshSurface 不會變成藍色,表示它是可導航的。 可步行的meshunbaked

設置/安裝:
如果您想查看我在下面描述的行為,這里是資產的完整 zip。 將這些復制到您的項目根目錄(我使用的是 Unity 2019.3),您將完成一半。

以下是我的代理的設置。 您必須在 Navigation window 中將您的代理設置為這些設置。 要修改這些設置,在工具欄中 select Window->AI->Navigation
在此處輸入圖像描述

這些是您必須在 PLANE NavMeshSurface 上設置的設置。 這允許 NavMesh 幾何體足夠詳細,以烘烤 32x16px 大小的單個圖塊。 在此處輸入圖像描述

更多信息:
我正在通過迭代 TileMap 來創建我試圖烘焙的網格。 這使我可以擁有具有完全獨立網格的獨立區域,以應對不同的路徑成本。 正如我上面所說,烘焙不能直接在這些網格上工作。

我可以通過使用單獨的平面並在場景中的任何位置烘焙該平面來間接烘焙 NavMesh。 烘焙將烘焙“WalkableSurface”游戲對象上的平面和 NavMeshSurface。 分配給生成的 NavMesh 的區域由平面 GameObject 的 NavMeshSurface 區域設置確定。

1) 為什么WalkableMesh object 沒有這個平面就不能烘烤?
2)為什么飛機會烘烤WalkableMesh?

您可以在下面看到烘烤 WalkableSurface 的方形平面。 可步行網布帶平面 在此處輸入圖像描述

我在代碼中添加的 NavMeshSurface 也報告找不到命名空間,但它仍然被添加。
Error CS0246 The type or namespace name 'NavMeshSurface' could not be found (are you missing a using directive or an assembly reference?)

當我決定將 NavMesh 移動到 XZ 平面時,基本上我所有的問題都消失了。

這個庫應該在 XY 平面上工作,但它顯然不能正常工作。 似乎它幾乎在那里,但事實並非如此。

烘焙網格的過程現在是簡單地依次制作網格,設置區域類型,然后從導航 window 烘焙。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM