在C#生成的网格上从NavMeshComponents中烘焙Unity NavMeshSurface。

问题描述 投票:0回答:1

问题:我在使用NavMeshSurface脚本中提供的C#生成网格时遇到了问题。 我遇到了一些问题,在使用NavMeshSurface中提供的脚本来烘焙C#生成的网格。NavMeshComponents.

如果我在 "WalkableMesh "GameObject上烘烤NavMeshSurface,烘烤很快就结束了,没有任何东西可以走。NavMeshSurface不会变成蓝色来表示它是可导航的。walkablemeshunbaked

SetupInstallation。 在这里 是一个完整的资产压缩包,如果你想看到我下面描述的行为。将这些复制到您的项目根目录中(我使用Unity 2019.3),您就可以完成一半的工作。

下面是我的代理的设置。你必须在导航窗口中将你的代理设置为这些设置.要修改这些设置,在工具栏中选择Window->AI->导航。enter image description here

这些是您需要在PLANE NavMeshSurface上进行的设置。这允许NavMesh几何体足够详细,以32x16px的大小来烘烤单个磁贴。enter image description here

更多信息。 我是通过迭代TileMap来创建我想烘焙的网格的。这让我可以为不同的贴图成本拥有完全独立的网格。正如我上面所说,烘焙不能直接在这些网格上工作。

我可以直接烘焙导航网格,方法是取一个单独的平面,然后在场景中任何地方烘焙该平面。烘烤将同时烘烤平面和 "WalkableSurface "游戏对象上的NavMeshSurface。生成的 NavMesh 的面积由平面 GameObject 的 NavMeshSurface 面积设置决定。

1)为什么如果没有这个平面,WalkableMesh对象不会被烘烤? 2)为什么平面会烘烤WalkableMesh?

下面可以看到正方形平面烘烤WalkableSurface。walkablemeshwithplaneenter image description here

我在代码中添加的NavMeshSurface也会报告找不到Namespace,但还是添加了。Error CS0246 The type or namespace name 'NavMeshSurface' could not be found (are you missing a using directive or an assembly reference?)

c# unity3d mesh navmesh
1个回答
0
投票

当我决定把NavMesh移到XZ平面上时,基本上我所有的问题都消失了。

这个库应该在XY平面上工作,但它显然不能正常工作。看起来好像已经差不多了,但就是不行。

现在烘焙网格的过程是简单地依次制作网格,设置区域类型,然后从导航窗口烘焙。

© www.soinside.com 2019 - 2024. All rights reserved.