【问题标题】:Unity 3d Nav Mesh bakingUnity 3d 导航网格烘焙
【发布时间】:2015-06-24 05:25:24
【问题描述】:

我的问题是关于 NavigationMeshes,我准备了一个基于网格的地图生成器。我可以生成一个由分为墙壁和地板的立方体组成的地图。

生成后我可以将其保存为预制件,稍后在导航菜单中我可以烘焙网格,但接下来我想将其保存为已烘焙导航网格的预制件。当我这样做并从场景中删除地图时,它会消失,但烘焙的网格仍然存在。要在另一个地方再次将地图放在现场,我必须再次烘烤。主要思想是使用烘焙网格生成“x”级别,然后根据我想要的级别实例化它们。那可能吗?感谢您的宝贵时间。

编辑: 在烘焙了一些示例导航网格后,出现了一个与我正在处理的场景相同的文件夹,里面有导航网格文件。现在这是我编辑的问题。我可以为每个不同的地图烘焙几个不同的导航网格,然后在加载此类地图后在代码中使用正确的导航网格,这样它们就可以很好地配合?

【问题讨论】:

    标签: unity3d navigation artificial-intelligence mesh navmesh


    【解决方案1】:

    生成这个后,我可以将其保留为预制件,稍后在 导航菜单 我可以烘焙网格,但接下来是我 想将其保存为带有已烘焙导航网格的预制件

    很遗憾,这是不可能的。 NavMesh 由场景保存,目前无法显式引用/实例化。

    另一方面,应该可以利用附加场景加载来使用存储在不同场景中的多个光照贴图。看看Application.LoadLevelAdditive

    您可以使用专用的(最终为空的)场景,并按需添加加载,而不是将导航网格保存到预制件中。

    【讨论】:

    • 我之前已经在某个地方遇到过这个解决方案,但我也注意到在尝试使用 LoadLevelAdditive 时存在一些问题,即之前保存的场景的 NavMesh 没有加载。 Application.LoadLevel 可以代替吗?
    • 您使用的是哪个版本的 unity?它应该工作。 LoadLevel not added 会将当前加载的 navmesh 替换为已加载级别的导航网格,因此我猜这不是您要寻找的。如果负载添加剂不能与 navmesh 一起正常工作(我不记得它是否是 5.x 的新功能),请发布相关代码,以便我查看或最终提交错误报告。
    • 我想这正是我想要的。我有一个游戏,我可以在其中选择我想玩的级别。显示级别的边框。要开始下一个级别,我必须通过前一个级别,但是!但我总是可以回到旧的(例如,我想获得更好的分数)。游戏模式与愤怒的小鸟非常相似。顺便说一句,我正在使用统一 5.0.4f pro。它带来了下一个问题。事实是 LoadLevel 可以工作,但我必须在加载下一个场景之前摆脱当前场景吗?
    • 加载级别破坏当前场景(使用当前导航网格)并以同步方式加载新场景(使用相关导航网格)。如果每个级别都有自己的导航网格,您可以坚持使用 loadlevel 或 loadlevelasync
    • 为每个关卡创建一个专门的场景是我的最佳方式。感谢非常有用和有帮助的 cmets。
    猜你喜欢
    • 2021-03-18
    • 2016-04-15
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多