- Home /
How to Set a Multidimensional Array Length
I have the following code:
public int lengthInt;
public int[, ] data = new int[0, 0];
void Start(){
data.Length(0) = lengthInt; //error
data.Length(1) = lengthInt; //error
}
From what I understand you can't just have:
public int lengthInt;
public int[, ] data = new int[lengthInt, lengthInt];
You have to define the array length in a runtime function. However if I just had:
public int lengthInt;
void Start(){
public int[, ] data = new int[lengthInt, lengthInt];
}
That would work but then it doesn't show up in the inspector. So how do I set a multidimensional array length and have it visible in the inspector?
Thanks!
Answer by Simon V · Jan 08, 2012 at 06:25 PM
The problem is that lengthInt == null
in your first try. If you assign a value to lengthInt
, before you define the array it will work.
Your first example should become:
public static int lengthInt = 0;
public int[, ] data = new int[lengthInt, lengthInt];
The static tag however, will make that your class can only have one instance.
And arrays are never visible in the inspector by the way.
Still doesn't work I get the following error: "A field initializer cannot reference the nonstatic field, method, or property..."
Ooh yes, completely forgot that. You have to add the static
tag to lengthInt
. Will update my answer.
Your answer
![](https://koobas.hobune.stream/wayback/20220613062803im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
2D array in shader 0 Answers
GameObjects in multidimensional Arrays 3 Answers
Multidimensional array trouble 2 Answers
Newbie Problem with Multidimensional Arrays in JavaScript 0 Answers
pragma strict create List of Array of strings for class? 1 Answer