c# - 统一: Texturing a Shoreline in a Hexgrid

标签 c# unity3d hexagonal-tiles texturing

我是一名初级程序员,也是 Unity 的新手。我目前正在使用 Unity5 练习 hexgrid 构建。我当前的六边形网格由平坦的六边形组成,它们具有草原或海洋 2D 纹理。 ( Current hexgrid )

我想在我的六边形网格中有一条沙质海岸线(在以海洋瓷砖作为相邻瓷砖的草原瓷砖上)。

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

我想为每个可能的海岸瓷砖制作一个纹理,但这将是大约 64 种不同的纹理,具体取决于草原相邻的海洋瓷砖数量以及从哪个方向。

我还需要沙漠和草原六角形之间以及深海和浅海六角形之间的“模糊”纹理线,我不知道该怎么做...

欢迎任何建议。谢谢!

最佳答案

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

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

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

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

来源:我曾经试图通过分析纹理文件来弄清楚半人马座阿尔法星是如何绘制它的地形的。我有理由相信他们就是这样做的。

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

关于c# - 统一: Texturing a Shoreline in a Hexgrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35703108/

相关文章:

c# - 在 Controller 类之外使用 Session

c# - 自定义属性方法级别授权

c# - 单击 GUI 按钮时禁用游戏对象创建

javascript - 在谷歌地图中将数据分箱到六边形网格中

r - ggplot2 stat_binhex() : keep bin radius while changing plot size

c# - Windows Phone,使用 PickSingleFileAndContinue 或 PickMultipleFilesAndContinue 选择文件

c# - Entity Framework 4 与 native Ado.net

unity3d - Unity - Sprite Packer 被禁用

multithreading - 如何在 Android 平台的 unity3d 中使用 c# 线程?

algorithm - 六边形网格中瓷砖之间的曼哈顿距离