做一款基于六边形界面的游戏,地图由很多个六边形组成,每一条边分别是一个GameObject,代码如下
//定义基本长度,该长度为六边形中点到每一条边的二分之一
private float baseDistance = 0.35f;
private GameObject[] wall = new GameObject[500];
private int wallNum;
private float sin60 = 0.866f;
public void createHexagonMap(int level)
{
int length = level * 2 - 1;
int num;
for(int i = 0; i < length; i++)
{
if(i <= length/2){num = i + level +1;}
else{num = level + length - i;}
for(int j = 0;j < num; j++)
{
//mapX[i,j]=1;mapY[i,j]=1;mapZ[i,j]=1;
if(i < length / 2)
{
createWall(-30,j*2-length,j*2+length-i*4-1);
createWall(30,j*2-length,-j*2-length+3+i*4);
createWall(90,i*2-length+1,length+2-j*4+i*2);
}
else