Menu
CoddyTech

Arrays

Teil des Abschnitts Unity-Scripting: Grundlagen der Unity-Journey von Coddy. Lektion 41 von 85.

Ein Array enthält mehrere Werte desselben Typs hintereinander. Sein Typ hat eckige Klammern dahinter, und seine Werte stehen in geschweiften Klammern:

int[] scores = { 10, 25, 7 };

Jeder Wert hat einen Index, also seine Position in der Reihe, und das Zählen beginnt bei 0: scores[0] ist 10, scores[1] ist 25 und scores[2] ist 7. scores.Length gibt an, wie viele Werte es gibt, hier also 3. Der Zugriff auf scores[3] bricht das Skript mit einer IndexOutOfRangeException ab: Es gibt keinen vierten Wert.

Eine for-Schleife bis Length durchläuft jeden Wert, unabhängig davon, was das Array enthält:

for (int i = 0; i < scores.Length; i++)
{
    Debug.Log("Score " + i + ": " + scores[i]);
}

Wenn du den Index nicht benötigst, ist foreach kürzer: foreach (int s in scores) { Debug.Log(s); } wird der Reihe nach einmal für jeden Wert ausgeführt.

challenge icon

Aufgabe

Mittel

Erstelle mit einem Array und einer Schleife eine Skyline mit 7 Türmen.

  1. Füge 6f und 2f am Ende von heights hinzu: { 2f, 5f, 3f, 1f, 4f, 6f, 2f }.
  2. Ersetze die Zeile PlaceTower durch for (int i = 0; i < heights.Length; i++).
  3. Rufe darin PlaceTower(i * 1.5f - 4.5f, heights[i]); auf.

Klicke auf „Spielen“: Sieben Türme unterschiedlicher Höhe stehen in einer Reihe. Klicke dann auf „Prüfen“.

Probier es selbst

using UnityEngine;

public class Skyline : MonoBehaviour
{
    void Start()
    {
        float[] heights = { 2f, 5f, 3f, 1f, 4f };

        // Platziere für jede Höhe einen Turm.
        PlaceTower(-4.5f, heights[0]);
    }

    void PlaceTower(float x, float height)
    {
        GameObject tower = GameObject.CreatePrimitive(PrimitiveType.Cube);
        tower.name = "Tower";
        tower.transform.position = new Vector3(x, height / 2, 0);
        tower.transform.localScale = new Vector3(1, height, 1);
        tower.GetComponent<Renderer>().material.color = new Color(0.35f, 0.45f, 0.7f);
    }
}

Alle Lektionen in Unity-Scripting: Grundlagen

Übe selbstständig: Unity-Playground