Unity大,动态平铺地图

时间:2016-06-08 14:53:07

标签: unity3d unity5

我正在考虑制作城市交通模拟游戏,基于像simcity这样的平铺地图。因为交通是主要的组成部分,所以我不会彻底地描述城市,比如绘制所有建筑物或其他建筑物。但我需要将城市划分为地区和村庄。

我希望它们是基于瓷砖地图系统随机生成的 - 实际上这并不是基于图块的,但我没有更好的想法来生成随机划分的区域。

问题是确实存在许多瓷砖。当然我不会把所有的瓷砖都制作成GameObjects,但是存储瓷砖信息的数组就像4000x3000(12,000,000个瓷砖)。好吗?我认为这会严重减慢游戏速度。

我搜索了许多生成平铺贴图的方法,但这些平铺贴图适用于RPG ..它们只是精灵和背景。

我的瓷砖应该动态改变(可能是颜色,我用3d制作游戏所以也许瓷砖的高度可能会改变),并显示该瓷砖的状态(城市的一个小区域) )。什么是更好的方式满足我的需求?

谢谢!

1 个答案:

答案 0 :(得分:1)

简短的回答是你应该生成一个网格来代表你的瓷砖。这将允许您将大量图块表示为单个游戏对象。

它并不像听起来那么麻烦。我最近自己经历过这个问题,并且已经写了一个关于如何做到这一点的分步指南,以及如何解决我在处理瓷砖时遇到的许多其他问题:

http://matthewlynch.net/2017/02/19/efficient-artefact-free-2d-tile-mapping-in-unity-5-5/

我要提到的唯一警告(这在教程中讨论,但没有直接解决)是你仍然应该以某种方式划分你的地图。

我不建议在单个网格中超过100x100的瓷砖,事实上会建议进一步分解它。但是一旦你获得了tile->网格渲染和运行的基础知识,这就不难了。