Unity:在六边形网格中为海岸线贴图

3
我是一名初级程序员,对Unity还不熟悉。我目前正在使用Unity5练习六边形网格的构建。我的当前六边形网格由平坦的六边形组成,这些六边形都有草地或海洋的2D纹理。(当前的六边形网格
我想在我的六边形网格中加入沙滩岸线(位于草地瓦片上,其相邻瓦片为海洋瓦片)。
我的问题是:最好、最有效的实现方法是什么?
我考虑为每个可能的岸瓦片制作一个纹理,但这将会有大约64种不同的纹理,具体取决于草地相邻的海洋瓦片数和方向。
我还需要在沙漠和草地六边形之间以及深海和浅海六边形之间有“模糊”的纹理线,但我不知道该如何做到...
任何建议都会受到赞赏。谢谢!
1个回答

0

我认为你只需要4或6个纹理。使用六边形,您在陆地/海洋角落只能有两种情况。要么海岸线形成半岛(凸形陆地/凹形海洋),要么形成峡湾(凹形陆地/凸形海洋)。

因此,两个主梯形纹理可以从瓷砖边缘向内绘制海滩,涵盖所有半岛上的陆地海滩和峡湾上的海滩。

在相反的情况下,您只需要一个小三角形扩展该纹理以填补梯形之间的空隙。

这就是我的意思:http://imgur.com/08qlJMy

来源:我曾经尝试通过分析纹理文件来弄清楚Alpha Centauri如何绘制其地形。我相当确定他们是这样做的。

至于处理沙漠,草地,海洋角落,我认为他们首先混合了陆地地形,然后覆盖了海岸线。


你看到海岸线呈凸形和凹形,这很有趣,但它也引发了我更多的问题和困惑。我猜这里的梯形纹理就像1/2个六边形?那不是意味着我必须在一个网格上贴上2种不同的纹理吗? - EpicCheese
@EpicCheese 我会把梯形的宽度设为六边形宽度的四分之一,以避免重叠。我已经附上了一张插图来说明我的意思。至于多个纹理,如果有问题,我想你必须在应用到网格之前将它们混合。 - Kempeth
谢谢!这在某种程度上很有帮助。 - EpicCheese

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接