Unity3D之动态生成指定数量带间隔的地面

文章目录

    • 准备
    • 代码实现
    • 实现效果

准备

  • 空物体
  • 生成脚本
  • 地面预制体

代码实现

using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using UnityEngine;

public class CreateGround : MonoBehaviour
{
    [SerializeField]
    public int Column = 1; // 列
    public int Row = 1; // 行
    public float spacing = 10f;
    public GameObject ground;
    private List<GameObject> groundLists = new();
    void Start()
    {
        if (ground != null)
        {
            Debug.Log("Groung_Row:" + Row);
            Debug.Log("Groung_Column:" + Column);
            for (int row = 0; row < Row; row++)
            {
                for (int col = 0; col < Column; col++)
                {
                    float x = col * spacing;
                    float z = row * spacing;
                    GameObject goj = GameObject.Instantiate(ground, new Vector3(x, 0, z), Quaternion.identity);
                    if (goj != null)
                    {
                        groundLists.Add(goj);
                    }
                }
            }
        }
    }
}

实现效果

  • 把脚本挂载到空物体上
  • 把地板预制体拖入脚本中

Unity3D之动态生成指定数量带间隔的地面_第1张图片

  • 运行测试, 生成5x5间隔为10的地面

Unity3D之动态生成指定数量带间隔的地面_第2张图片
Unity3D之动态生成指定数量带间隔的地面_第3张图片

  • 生成3x5间隔20的地面
    Unity3D之动态生成指定数量带间隔的地面_第4张图片

你可能感兴趣的:(Unity,unity,游戏开发,动态生成,地面,造轮子)