以下是生成六边形地图的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坐标,以便我们可以正确地对每一行中的六边形进行偏移。最后,我们创建一个六边形的游戏对象,设置它的位置、旋转和缩放,然后将它作为子对象添加到容器对象中。

unity 六边形地图生成代码

原文地址: https://www.cveoy.top/t/topic/90B 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录