2016-02-29 84 views
3

我是初级程序员,也是Unity的新手。我目前正在使用Unity5练习hexgrid。我目前的hexgrid由平面的六边形组成,它们具有草地或海洋2D纹理。 (Current hexgridUnity:纹理Hexgrid中的海岸线

我想在我的六边形网格中有一个沙质海岸线(在有海洋地砖作为相邻地块的草地地面砖上)。

我的问题是:什么是最好的,最有效的方式来实现呢?

我想为每个可能的岸边做一个纹理,但是这大概有64种不同的纹理,取决于草地邻居的多少海洋砖和从哪个方向。

我还需要沙漠和草原不吉利的东西和深海和浅海不吉利的东西之间的“模糊”纹理线,我不知道该怎么做......

任何建议表示赞赏。谢谢!

回答

0

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

因此,从瓦片边缘向内绘制海滩的两个主要梯形纹理将覆盖半岛上的所有陆地海滩和峡湾上的所有海滩。

在相反的情况下,您只需要该纹理的小三角形延伸以填充梯形之间的间隙。

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

来源:我曾经试图弄清楚半人马座阿尔法星是如何通过分析纹理文件绘制其地形。我相当确定他们是这么做的。

至于处理沙漠,草地,海角我相信他们首先混合陆地地形,然后覆盖海岸线。

+0

您将海岸线看作凹凸的方式非常有趣,但它给我带来了更多的问题和疑问。我猜这里的梯形纹理就像1/2六边形?那不是说我必须在一个网格上粘贴两种不同的纹理吗? – EpicCheese

+0

@EpicCheese为了避免任何重叠,我会制作十六进制十六进制宽度的tapezoids。我已经添加了一个指向我的意思的链接。至于多个纹理。如果这是一个问题,我想你必须在将它们应用到网格之前将它们混合。 – Kempeth

+0

谢谢!这在一定程度上有所帮助。 – EpicCheese