【发布时间】:2015-06-30 19:57:25
【问题描述】:
我正在使用 Unity 5 创建等距游戏。我已经生成了一个瓷砖网格,效果很好。但是,当我使用两个不同的图块填充网格时(它们的图像大小略有不同),我会在图块之间出现间隙。显而易见的解决方案是创建图块,使它们的图像大小都相同,但这会阻止我在图块上创建大于图块大小的任何东西(例如树)。
这里有一些图片来演示:
只有一种类型的图块:
有两种类型的瓷砖:
这是我用来创建地图的代码:
private void CreateMap() {
float tileWidth;
float tileHeight;
int orderInLayer = 0;
SpriteRenderer r = floorTiles [0].GetComponent<SpriteRenderer> ();
tileWidth = r.bounds.max.x - r.bounds.min.x;
tileHeight = r.bounds.max.y - r.bounds.min.y;
for (int i = 0; i < map.GetLength(0); i++) {
orderInLayer += 1;
for (int j = 0; j < map.GetLength (1); j++) {
Vector2 position = new Vector2 ((j * tileWidth / 2) + (i * tileWidth / 2) + (tileWidth / 2), (j * tileHeight / 2) - (i * tileHeight / 2) + (tileHeight/ 2));
r = map[i,j].GetComponent<SpriteRenderer>();
r.sortingOrder = orderInLayer;
Instantiate(map[i, j], position, Quaternion.identity);
}
}
}
任何帮助将不胜感激,我似乎无法修复它!
【问题讨论】:
-
您可以创建一些重叠。另一种选择是拉伸较小的图像。
-
这两个选项可以工作,但是这会使地图看起来很奇怪,我正在寻找一个完美的解决方案,坏的瓷砖只需要稍微调整,但我找不到办法。