3-1 地图单元的高度属性

  在之前的章节中,我们完成了地图单元之间颜色混合的功能,并优化了显示和效率。现在的地图虽然可以显示自定义颜色,但细节还是不够丰富。在接下来的章节中,我们将为现在的地图系统添加单元格高度的功能,让整个地图系统的细节更加丰富。

  为了给地地图单元增加高度功能,就要给每个地图单元增加一个高度属性,这里我们用一个int类型的变量来表示每个地图单元的高度。

HexCell.cs
1
2
3
4
5
6
7
public class HexCell : MonoBehaviour
{
//表示每个cell的高度等级,0即在水平面位置上
public int elevation;


}

  接下来,我们还要设置每一级高度,具体是多少。这个数值可以用一个常量来表示。现在我们先暂时使用Unity3D中5个标准单位来作为每一级的高度值。这样高低变化看起来会比较明显,在之后的步骤中也可以根据视觉效果来及时调整。

HexMesh.cs
1
2
3
4
5
6
7
public static class HexMetrics
{
//地图中每个高度等级之间相差的实际距离
public const float elevationStep = 5f;


}

Github代码