🏠 Startseite

📚 Arrays und Listen in Unity

Manchmal reicht eine einzelne Variable nicht aus. Was ist, wenn wir gleich 10 Gegner haben? Oder eine Liste mit Früchten? Dann kommen Arrays und Listen ins Spiel – sie ermöglichen es dir, viele Werte gleichzeitig zu speichern und per Index darauf zuzugreifen.

Arrays und Listen sind nützlich, wenn du:

In dieser Lektion schauen wir uns an, wie sich Arrays von Listen unterscheiden und wie man sie in Unity erstellt, befüllt und verwendet.

🔢 Arrays

Ein Array ist eine Variable, die mehrere Werte desselben Typs speichern kann. Anstatt zehn einzelne Variablen zu erstellen, fassen wir sie in einem Array zusammen und greifen über den Index darauf zu.

Arrays sind besonders nützlich, wenn man im Voraus weiß, wie viele Plätze gebraucht werden – zum Beispiel 5 Leben für den Spieler oder 3 Menüschaltflächen. Jedes Element im Array hat einen Index, beginnend bei null.

Nach der Erstellung bleibt die Länge des Arrays gleich: Man kann keine Elemente hinzufügen oder entfernen. Wenn du etwas Flexibleres brauchst – siehe weiter unten den Abschnitt über Listen.

🧰 Deklaration und Initialisierung

Um ein Array zu erstellen, gibst du den Datentyp und die Anzahl der Elemente an. Du kannst es zuerst deklarieren und später befüllen oder direkt alle Werte in geschweiften Klammern angeben.

🎯 Zugriff auf Elemente

Jedes Element im Array hat eine Nummer – den Index, beginnend bei 0. Über diesen Index können wir Werte lesen und ändern. Zum Beispiel ist array[1] das zweite Element.

Unten siehst du zwei Beispiele: eines mit Zahlen, eines mit Zeichenketten. Sie zeigen, wie man ein Array erstellt, befüllt und die Werte im Code verwendet.

🧮 Beispiel: Zahlen-Array int[]


using UnityEngine;

public class CSharpScript : MonoBehaviour
{
    // Start wird einmal beim Start des Objekts aufgerufen
    void Start()
    {
        // Ein Array mit 3 Zahlen erstellen
        int[] numbers = new int[3];

        // Das Array mit Werten befüllen
        numbers[0] = 10;
        numbers[1] = 20;
        numbers[2] = 30;

        // Einen Wert ausgeben
        Debug.Log("Zweite Zahl: " + numbers[1]);
    }

    // Update wird einmal pro Frame aufgerufen
    void Update()
    {
        
    }
}

📋 Beispiel: Zeichenketten-Array string[]


using UnityEngine;

public class CSharpScript : MonoBehaviour
{
    // Start wird einmal beim Start des Objekts aufgerufen
    void Start()
    {
        // Array mit Namen
        string[] names = { "Anya", "Bob", "Sonya" };

        // Den ersten Namen ausgeben
        Debug.Log("Hallo, " + names[0]);
    }

    // Update wird einmal pro Frame aufgerufen
    void Update()
    {
        
    }
}

📋 Listen

Eine Liste ist wie ein Array, aber flexibler. Du kannst jederzeit Elemente hinzufügen oder entfernen, ohne die Anzahl im Voraus festzulegen. Für Listen verwendet man den Typ List<T>, wobei T der Datentyp ist (z. B. int, string, GameObject).

Listen werden häufig verwendet, wenn:

🧰 Deklaration und Initialisierung

Um eine Liste zu erstellen, verwendet man List<T> und bindet den Namensraum System.Collections.Generic ein. Danach können Elemente ganz einfach zur Laufzeit hinzugefügt werden.

➕ Elemente hinzufügen

Zum Hinzufügen von Elementen nutzt man die Methode Add(). Sie fügt einen Wert am Ende der Liste ein.

➖ Elemente entfernen

Um ein Element zu entfernen, kann man Remove() verwenden – es sucht und löscht das erste Vorkommen des angegebenen Wertes. Es gibt auch andere Methoden wie RemoveAt(index), um gezielt nach Index zu löschen.

🔢 Größe der Liste

Statt Length wie bei Arrays nutzt man bei Listen Count, um die aktuelle Anzahl der Elemente anzuzeigen.

Unten siehst du ein Beispiel, wie das Ganze in einem Unity-Skript aussieht.


using UnityEngine;
using System.Collections.Generic;

public class CSharpScript : MonoBehaviour
{
    // Start wird einmal beim Start des Objekts aufgerufen
    void Start()
    {
        // Eine Liste mit Namen und Anfangswerten erstellen
        List<string> names = new List<string>() { "Anya", "Bob", "Sonya" };

        // Zwei weitere Namen hinzufügen
        names.Add("Tina");
        names.Add("Leo");

        // Den ersten Namen (Anya) entfernen
        names.RemoveAt(0);

        // Die Anzahl der Elemente ausgeben
        Debug.Log("Anzahl der Namen in der Liste: " + names.Count);
    }

    // Update wird einmal pro Frame aufgerufen
    void Update()
    {
        
    }
}

🤔 Wann verwendet man ein Array und wann eine Liste?

Beide – Arrays und Listen – dienen dazu, mehrere Werte zu speichern, aber sie haben unterschiedliche Eigenschaften.

Wenn du unsicher bist – fang mit List<T> an. Sie ist in den meisten Fällen einfacher und flexibler.