首页 文章

Unity中的大型场景,远远超过一个地形?

提问于
浏览
3

想象一下Unity中的大型自由漫游游戏,

enter image description here

黄色大小表示您可以在Unity中制作典型地形的最大尺寸 .

艺术部 . 将完全 Build , meter by meter, the entire scene.

Please note, this has absolutely no connection to repeating scenery (as in runners) or procedural scenery (as in say some race games).

真的,在Unity中执行此操作的正确和好方法是什么?

  • 使用50个左右的地形,每个可能100m x 100m?

  • 你甚至可以拥有或使用那么多地形吗?

或者是什么?


对于在这里谷歌搜索的人 .

确实是正确的解决方案

地形拼接

  • 就是这样 .

在实践中,您必须使用可用的工具之一(例如,TerrainFormer),或者您的团队将从头开始编写地形缝合器 .

是的,你只需要使用“很多地形” .

4 回答

  • 2

    执行此操作的正确方法是使用MeshFilterMesh API生成程序网格,但是您提到这根本不是随机或生成的,因此可以消除一个 .

    它只是一个非常长,薄,手工制作的环境

    在这种情况下,最好的方法是模块化水平设计 . 您需要创建模块化资产 . 有了这个,您就可以拥有一条可以拼接的长路 . 一个优秀的建模艺术家应该能够使用Blender,Maya或3ds Max等3D建模软件包创建和纹理模块化资源 .

    程序员所要做的就是让每个资产成为预制件然后使用Instantiate函数来实例化它们以创建任何环境距离 . 您还可以从编辑器在场景中创建静态环境 . 几乎任何东西都可以制成模块化资产,尤其是建筑物和道路 .

    在Unity中组装它们之后,您可以使用Unity的StaticBatchingUtility.Combine在所有实例化模块化部件上进行静态批处理,以提高游戏性能,因为它们不会被移动 .

    以下是模块化道路资产的示例,可用于创建几乎任何数量的道路:

    enter image description here

  • 1

    你已经回答了你的问题

    在这种情况下,最好不要打扰Unity的优秀Terrain,并且建模师会直接建造长路线/风景? (显然你必须把它打碎所以一切都很好)

    我认为这是要走的路 . 如果性能有问题,请尝试将每个块放在不同的场景中,然后使用主场景加载它们asyncadditively . 当然,您希望卸载每个场景,因为它在相机中变得不可见 .

    我个人使用自己的解决方案,让Unity Occlusion Culling系统负责隐藏和显示块 . 如果我没有以这种方式获得足够的性能,我只会采用单独的场景方法 .

  • 2

    我最近遇到了同样的问题 . 我们 Build 了一个基于瓦片的无限跑道与道路交叉口 . 相机被放置在汽车的后方和上方俯视街道和玩家车 . 因此设置非常可比 .

    我们使用资产商店中的Curvy来创建移动玩家的路径,以及创建街道和街道周围环境的几何形状 .

    https://assetstore.unity.com/packages/tools/level-design/curvy-splines-7038

    使用弯曲路径生成瓷砖也很容易,并在运行时将它们组合在一起 . 因此,您可以将长距离分成较小的段并随机生成它们 .

    我们还使用ProCore的QuickBrush快速将环境细节绘制成几何形状,如树木,灌木或石头 . 我认为procore工具现在在新的Unity 2018版本中实现 .

    工作得很好 .

  • 1

    提出确切问题的最佳方法,

    事实上只是:

    “使用大量的地形” .

    在Unity中,拥有许多(几十个)Terrain单元似乎是完全可行的,基本上“彼此相邻” .

    在实践中,你需要 TerrainFormer

    https://assetstore.unity.com/packages/tools/terrain/terrain-former-20052

    或其中一个 similar tools .

    (或者,我想,从头开始编写自己的工具来缝合地形,并允许你一次操纵它们,完美地加入边缘高度等等)

    实际上不可能将许多地形完美地放在一起(手工),匹配所有边缘等等 . 所以你需要一个“缝合”包来将许多地形方块放在一起 .

    所以,这个巨大的区域..

    enter image description here

    有大约12个地形 .

    这就是答案,你确实可以在Unity项目中拥有“很多很多”Terrain,你确实只是“让他们彼此相邻” . 实际上,除非使用TerrainFormer之类的编辑器工具,否则无法实现 .

相关问题