Menu
CoddyTech

Schleifen in Schleifen

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

Eine Reihe braucht eine Schleife. Ein ganzer Boden aus Reihen und Spalten braucht eine Schleife in einer Schleife:

for (int column = 0; column < 3; column++)
{
    for (int row = 0; row < 2; row++)
    {
        Debug.Log(column + ", " + row);
    }
}

Bei jedem Durchlauf der äußeren Schleife läuft die innere Schleife vollständig durch. Dadurch werden 0, 0 und 0, 1 ausgegeben, dann 1, 0 und 1, 1, dann 2, 0 und 2, 1: 3 Spalten mal 2 Reihen, insgesamt 6 Zeilen.

Die beiden Schleifen benötigen Zähler mit unterschiedlichen Namen. Hier sind sie nach dem benannt, was sie zählen: column und row. Dadurch ist der Code leichter zu lesen als mit i und j.

challenge icon

Aufgabe

Mittel

Verlege einen Boden aus 12 Fliesen: 4 Spalten, 3 Zeilen.

  1. Ersetze in Start() PlaceTile(0, 0); durch for (int column = 0; column < 4; column++).
  2. Schreibe innerhalb der geschweiften Klammern for (int row = 0; row < 3; row++) und rufe PlaceTile(column, row); innerhalb dieser inneren Schleife auf.

Drücke „Spielen“: Ein Boden aus 4 mal 3 Fliesen erscheint. Drücke dann „Prüfen“.

Probier es selbst

using UnityEngine;

public class TileFloor : MonoBehaviour
{
    void Start()
    {
        // Lege 4 Spalten und 3 Reihen aus Kacheln an.
        PlaceTile(0, 0);
    }

    void PlaceTile(int column, int row)
    {
        GameObject tile = GameObject.CreatePrimitive(PrimitiveType.Cube);
        tile.name = "Tile";
        tile.transform.position = new Vector3(column * 1.1f - 1.65f, 0.1f, row * 1.1f);
        tile.transform.localScale = new Vector3(1, 0.2f, 1);
        tile.GetComponent<Renderer>().material.color = new Color(0.85f, 0.85f, 0.9f);
    }
}

Alle Lektionen in Unity-Scripting: Grundlagen

Übe selbstständig: Unity-Playground