Unity 3D 导航网格烘焙

4
我的问题涉及NavigationMeshes,我已经准备好了一个基于网格的地图生成器。我可以生成由立方体组成的地图,这些立方体被分为墙和地板。
在生成地图后,我可以将其保留为预制件,在导航菜单中可以烘焙网格,但接下来要做的是,我想将其保存为已经烘焙过导航网格的预制件。当我这样做并从场景中删除地图时,它会消失,但已经烘焙的网格仍然存在。要再次将地图放置在另一个位置上,我必须重新烘焙。主要想法是生成“x”个带有烘焙网格的级别,然后根据我想要的级别实例化它们。这可行吗?感谢您的时间。
编辑: 在烘焙一些示例导航网格后,出现了一个与我正在工作的场景同名的文件夹,其中包含导航网格文件。现在,这是我的编辑问题。我可以为每个不同的地图烘焙几个不同的导航网格,然后在加载这样的地图后在代码中使用适当的导航网格,以便它们能够很好地协作吗?
1个回答

4
生成后,我可以将其保存为预制件,并在导航菜单中烘焙网格,但接下来的问题是,我想将其保存为已经烘焙了导航网格的预制件。很遗憾,这是不可能的。导航网格是按场景保存的,目前你不能明确地引用/实例化它们。另一方面,可以利用附加场景加载来使用存储在不同场景中的多个光照贴图。请参考Application.LoadLevelAdditive。您可以使用专用(最终为空的)场景,而不是将导航网格保存为预制件,并按需逐渐加载它。

我之前在某个地方已经遇到过这个解决方案,但是我也注意到在尝试使用LoadLevelAdditive时存在一些问题,即之前保存的场景的NavMesh没有加载。可能可以尝试使用Application.LoadLevel来代替吗? - Power
你使用的Unity版本是哪个?它应该可以工作。LoadLevel不是增量加载,它会用加载级别上的新导航网格替换当前已加载的导航网格,所以我猜这不是你要找的。如果增量加载与导航网格无法正常工作(我不记得它是否是5.x的新功能),请发布相关代码,以便我查看,或者提交错误报告。 - Heisenbug
我猜这正是我在寻找的东西。我有一个游戏,可以选择要玩的关卡。有一个显示关卡的边框。要开始下一关,必须通过上一关,但是!但是我可以随时回到以前的关卡(例如,我想获得更好的分数)。游戏模式非常类似于愤怒的小鸟。顺便说一句,我正在使用Unity 5.0.4f专业版。这带来了下一个问题。事实是LoadLevel会起作用,但是在加载下一个场景之前,我是否需要摆脱当前场景? - Power
1
加载等级会销毁当前场景(带有当前的navmesh),并以同步方式加载新场景(如有相对应的navmesh)。如果每个等级都有自己的navmesh,则可以使用loadlevel或loadlevelasync。 - Heisenbug
为每个关卡创建一个专用场景是我这种情况下的最佳方式。感谢非常有用和有帮助的评论。 - Power

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接