本文旨在六边形网格精简版绘制,可以此为基础实现具体的功能
六边形网格是用一个二维数组进行存放,能最大程度的对应正方形网格以及替换,具体实现如下:
面板部分
其中的Text为预制体,用于显示对应的格子下标
HexagonModal类
using UnityEngine;
public class HexagonModal
{
public const float outerRadius = 10f; //外圈半径
public const float innerRadius = outerRadius * 0.866025404f;
public static Vector3[] corners = {
new Vector3(0f, 0f, outerRadius),
new Vector3(innerRadius, 0f, 0.5f * outerRadius),
new Vector3(innerRadius, 0f, -0.5f * outerRadius),
new Vector3(0f, 0f, -outerRadius),
new Vector3(-innerRadius, 0f, -0.5f * outerRadius),
new Vector3(-innerRadius, 0f, 0.5f * outerRadius),
new Vector3(0f, 0f, outerRadius)
};
}
HexGrid