unity 六边形地图生成代码
以下是生成六边形地图的Unity代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HexGridGenerator : MonoBehaviour
{
public int width = 6;
public int height = 6;
public float hexSize = 1f;
public GameObject hexPrefab;
private float xOffset = 0.882f;
private float zOffset = 0.764f;
void Start()
{
GenerateHexGrid();
}
void GenerateHexGrid()
{
for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
float xPos = x * xOffset;
if (y % 2 == 1)
{
xPos += xOffset / 2f;
}
GameObject hexGO = Instantiate(hexPrefab, new Vector3(xPos, 0, y * zOffset), Quaternion.identity);
hexGO.transform.localScale = new Vector3(hexSize, hexSize, hexSize);
hexGO.transform.parent = this.transform;
}
}
}
}
在这个代码中,我们使用了一个叫做GenerateHexGrid的函数来生成六边形地图。这个函数使用两个for循环来迭代地图中的每个六边形。我们使用一个叫做xOffset的变量来计算每个六边形的x坐标,使用一个叫做zOffset的变量来计算每个六边形的z坐标。我们还使用了一个if语句来检查y坐标,以便我们可以正确地对每一行中的六边形进行偏移。最后,我们创建一个六边形的游戏对象,设置它的位置、旋转和缩放,然后将它作为子对象添加到容器对象中。
原文地址: https://www.cveoy.top/t/topic/90B 著作权归作者所有。请勿转载和采集!