Jump to content
Unity Insider Forum

C# - Array einer Klasse


Driller

Recommended Posts

http://www.directupload.net/file/d/4197/ae396czp_png.htm

 

Hallo, liebe Community

 

Von Zeile 5 bis 12 habe ich meine Klasse "Biom" deklariert.

 

Darunter habe ich in Zeile 14 das Biom-Array "BD" angelegt.

Darunter in Zeile 15 kann ich jedoch nicht darauf zugreifen.

 

Es wird ein "Jagged Array" statt eines normalen Arrays angelegt.

Wie kann ich das korrigieren?

 

Vielen Danke schon im Vorraus, :)

 

Liebe Grüße

-Driller

Link zu diesem Kommentar
Auf anderen Seiten teilen

In Javascript kann Code außerhalb von Funktionen und Klassen geschrieben werden.

 

Unity nimmt alle Funktionen von JavaScript und packt sie in eine (für den User unsichtbare) Klasse, die von MonoBehaviour erbt.

Unity nimmt dann allen Code, der nicht in Funktionen steckt und packt ihn in eine (auch für den User unsichtbare) Methode Main und zu den anderen Funktionen.

 

Main wird nach Awake und vor Start aufgerufen.

 

In C# muss aller Code in Funktionen und Klassen stehen. Cxydas Antwort ist richtig, wenn du das Array über den Editor bearbeitest, musst du es allerdings nicht initialisieren. Das macht Unity für dich.

 

Funfact: Auch wenn das nirgendwo dokumentiert ist, die Main Methode kann auch in C# deklariert werden und wird von Unity aufgerufen. Falls man zwischen Awake und Start noch was braucht ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie kommt der OP eigentlich darauf dass ein Jagged Array erstellt wird? Das Array was er da deklariert hast ist ein eindimensionales normales Array.

 

Normales eindimensionales Array:

int[] normal;

 

Jagged Array:

int[][] jagged1;
int[][][] jagged2;

 

Multidimensionales Array:

int[,] multidimensional1; // 2D
int[,,] multidimensional2; // 3D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Natürlich kann man auch ein Array unmittelbar bei der Deklaration initialisieren:

 

// Single-dimensional array (numbers).
int[] n1 = new int[4] {2, 4, 6, 8};
int[] n2 = new int[] {2, 4, 6, 8};
int[] n3 = {2, 4, 6, 8};
// Single-dimensional array (strings).
string[] s1 = new string[3] {"John", "Paul", "Mary"};
string[] s2 = new string[] {"John", "Paul", "Mary"};
string[] s3 = {"John", "Paul", "Mary"};
// Multidimensional array.
int[,] n4 = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };
int[,] n5 = new int[,] { {1, 2}, {3, 4}, {5, 6} };
int[,] n6 = { {1, 2}, {3, 4}, {5, 6} };
// Jagged array.
int[][] n7 = new int[2][] { new int[] {2,4,6}, new int[] {1,3,5,7,9} };
int[][] n8 = new int[][] { new int[] {2,4,6}, new int[] {1,3,5,7,9} };
int[][] n9 = { new int[] {2,4,6}, new int[] {1,3,5,7,9} };

 

Der Zugriff gilt dann innerhalb einer Funktion im passenden Scope.

 

MSDN

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...