unity3d - 如何制作一个像地球一样的地形?
问题描述
我想制作一个终点也是起点的地形。所以,就像在地球上一样,你可以继续直走,一段时间后你会到达你重新开始的地方。
谢谢你的帮助!
解决方案
Unity 的地形系统只能创建正方形的地形区域。所以不能这样做。
但是,你可以近似它,我会告诉你我是如何在我的项目中做到这一点并取得一些成功的。
计算出覆盖“地球”需要多少地形,我们会说它需要 NxN 块地形,我们称之为“瓦片”。
接下来你要做的是制作 9 个 NxN 瓷砖,并将它们排列在 3x3 的网格中。将相机放在网格的中心瓦片上,每当相机离开该瓦片时,确定它在它所在的瓦片上的位置,然后将其位置更改为中心瓦片上的相应位置。
这会给你一个“环形”的世界。我发现这是让玩家在世界地图的另一个“角落”看到事物,然后在没有图形问题的情况下进入它的最简单的解决方案。
如果您在世界上还有其他物体,那就会带来一些额外的挑战。您可以开始的一件事是将它们复制 9 倍并在每个图块的相同相对位置开始它们。如果他们只与玩家互动,那应该没问题,只要玩家与 1 互动,其他 8 人就会做 1 所做的任何事情。
如果地球上的其他居民必须相互交互,您将需要一种方法来弄清楚如何使所有 9 个副本的行为一致,但这个问题太宽泛,无法在这里解决。
推荐阅读
- html - 页面宽度高于页面宽度,我不知道为什么
- html - 如何使用基于标签 ID 的字符串替换整个文件的 HTML 标签
- python - 有没有办法在没有模板标签或数据库查询的情况下访问 django 模板中的嵌套 python 字典?
- python - 得到一个错误:object() 在 Python 中没有参数
- java - 纯函数可以存在于纯面向对象的编程语言中吗?
- c++ - 背包贪婪算法-我做错了什么?
- javascript - 如何使用动态选择表单来更改 HTML 和 JavaScript 的样式?
- javascript - 将异步函数的结果导出到单独的 js 文件中,将结果导入另一个 javascript
- python - 使用列表推导解包嵌套元组
- java - 有没有办法在注释中制作适配器/包装器模式?