mirror of
https://github.com/CodeninjasWS/Usefull-Unity-Scripts.git
synced 2025-06-13 13:10:21 -04:00
65 lines
1.8 KiB
C#
65 lines
1.8 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
|
|
[System.Serializable]
|
|
public class TileData
|
|
{
|
|
public int tileNumber;
|
|
}
|
|
|
|
public class TileGenerator : MonoBehaviour
|
|
{
|
|
public Transform gridParent;
|
|
public TextAsset jsonFile;
|
|
public GameObject[] tilePrefabs;
|
|
|
|
private void Start()
|
|
{
|
|
GenerateGridFromJSON();
|
|
}
|
|
|
|
private void GenerateGridFromJSON()
|
|
{
|
|
string jsonData = jsonFile.text;
|
|
GridData gridData = JsonUtility.FromJson<GridData>(jsonData);
|
|
|
|
int rows = gridData.rows;
|
|
int columns = gridData.columns;
|
|
List<TileData> tiles = gridData.tiles;
|
|
|
|
for (int row = 0; row < rows; row++)
|
|
{
|
|
for (int col = 0; col < columns; col++)
|
|
{
|
|
int tileIndex = row * columns + col;
|
|
if (tileIndex < tiles.Count)
|
|
{
|
|
TileData tileData = tiles[tileIndex];
|
|
|
|
if (tileData.tileNumber >= 0 && tileData.tileNumber < tilePrefabs.Length)
|
|
{
|
|
GameObject tilePrefab = tilePrefabs[tileData.tileNumber];
|
|
Vector3 position = new Vector3(col, 0f, row); // Set the Y position to 0 to make it flat
|
|
GameObject tileGO = Instantiate(tilePrefab, position, Quaternion.identity, gridParent);
|
|
// You may also adjust the scale, rotation, or other properties of the tile here.
|
|
}
|
|
else
|
|
{
|
|
Debug.LogWarning("Invalid tile number in JSON data at row: " + row + ", col: " + col);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
[System.Serializable]
|
|
public class GridData
|
|
{
|
|
public int rows;
|
|
public int columns;
|
|
public List<TileData> tiles;
|
|
}
|