- Home /
How would i use a 2D array for level generation
Hey there, i am trying to come up with a script that would generate a grid and eventually rooms which will instantiate in random directions and connecting each other. Thus forming a "dungeon", after a lot of searching i finally found the solution to be a 2D array, i came up with a script that would pick the values of the X and Z axis of the 2D array and form a grid. Pretty easy, now the question is. If i want to check if a certain "slot" or "grid-cell" is occupied with a room. Would i make a second 2D array of bools? Or should i create an Empty GO which contains a script holding a Class with different preferences? Like if the "cell" is occupied and which type of room it is etc...
I recently switched over from Unityscript to C# so i deleted my old script and now i am trying to find an efficient method for taking care of this.
What i have come up so far is this: (like i said in the beginning, it isn't much)
using UnityEngine;
using System.Collections;
public class MapGenerator : MonoBehaviour
{
public int width = 15;
public int length = 15;
public Room[,] room;
int[,] gridArray;
void Awake()
{
room = new Room[width,length];
gridArray = new int[width,length];
}
void Start()
{
Grid();
}
void Grid()
{
for(int z = 0; z < gridArray.GetLength(0); z++)
{
for(int x = 0; x < gridArray.GetLength(1); x++)
{
GenerateCells(z, x);
}
}
}
void GenerateCells(int z, int x)
{
//I thought of putting an instantiating part over here, which will instantiate Empty GO's
}
}
Now if the best solution is using empty GO's, how would i pass the value of the empty GO to this script? Normally you would use GetComponent and then probably something with [z,x]. But for some reason the last time i tried to use that, it didn't work.
Sorry for the wall of text! Any help is greatly appreciated!
Cheers, Darryl
Your answer
Follow this Question
Related Questions
Puzzle + Grid Instantiate - Random 2 Answers
Unable to randomly instantiate prefab from array 2 Answers
Multiple Fire Points 2 Answers
C# Array with random.range help? 2 Answers