unity 2D瓦片地图,使用list<GameObject>,来生成地图,代码实现
时间: 2024-05-02 21:21:56 浏览: 141
以下是一个简单的Unity 2D瓦片地图生成代码,使用list<GameObject>来存储地图瓦片。
1. 创建一个空的GameObject,并将以下脚本添加到该GameObject上。
```csharp
using System.Collections.Generic;
using UnityEngine;
public class TileMap : MonoBehaviour
{
public GameObject[] tilePrefabs; // 存储地图瓦片的预制体
public int mapWidth = 30;
public int mapHeight = 20;
public List<GameObject> tiles = new List<GameObject>(); // 存储实例化出来的地图瓦片
void Start()
{
GenerateMap();
}
void GenerateMap()
{
for (int x = 0; x < mapWidth; x++)
{
for (int y = 0; y < mapHeight; y++)
{
// 随机选择一个地图瓦片预制体
int tileIndex = Random.Range(0, tilePrefabs.Length);
// 实例化出一个地图瓦片
GameObject newTile = Instantiate(tilePrefabs[tileIndex], new Vector3(x, y, 0), Quaternion.identity);
// 将实例化出来的地图瓦片添加到列表中
tiles.Add(newTile);
}
}
}
}
```
2. 创建一个空的GameObject,并将地图瓦片的预制体拖拽到该GameObject上。确保预制体的位置在(0, 0, 0)。
3. 将上面创建的空GameObject作为父节点,将生成的地图瓦片作为子节点添加到该GameObject中。这样可以方便地管理整个地图。
4. 运行游戏,就可以看到生成的随机地图了。
阅读全文