unity 在地图随机生成不重叠对象

没啥好说的。无非就是利用哈希存储已生成坐标,随机的时候判断一下是否已在该坐标生成对象

unity 在地图随机生成不重叠对象_第1张图片

public class NewBehaviourScript : MonoBehaviour
{
    public int num = 30;
    public GameObject prefab;
    public int width = 50;
    public int height = 50;

    void Start()
    {
        List list = new List();
        for (var y = 0; y < height; y++)
        {
            for (var x = 0; x < width; x++)
            {
                list.Add(new Vector3Int(x, 0, y));
            }
        }
        for (int i = 0; i < num; i++)
        {
            var index = Random.Range(0, list.Count);
            var pos = list[index];
            GameObject.Instantiate(prefab).transform.position = pos;
            list.RemoveAt(index);
        }
    }
}

你可能感兴趣的:(游戏,地图,随机生成,对象,unity)