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.
Aufgabe
MittelVerlege einen Boden aus 12 Fliesen: 4 Spalten, 3 Zeilen.
- Ersetze in
Start()PlaceTile(0, 0);durchfor (int column = 0; column < 4; column++). - Schreibe innerhalb der geschweiften Klammern
for (int row = 0; row < 3; row++)und rufePlaceTile(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
1C#-Grundlagen in Unity
Hallo, UnityVariablenDezimalzahlen brauchen ein fText in der KonsoleVariablen, die sich etwas merkenIf und ElseZahlen vergleichenRückblick: Münzsammler7Schleifen und Methoden
Wiederholen mit forSchleifen in SchleifenEine Methode schreibenMethoden mit RückgabewertArraysRückblick: Treppe10Dinge finden
Nach Namen suchenTagsNach Typ suchenReferenzen schlagen SuchenUnitys NullRückblick: nächste Münze13Projekt: Weiche den Blöcken aus
Der LäuferBlöcke vom Himmel2Bring es in Bewegung
Platziere den WürfelBewege ihn in jedem FrameDrehe ihn jede SekundeSteuere mit den TastenRückblick: Fahre den Würfel5Vektoren
Vektoren addierenRichtungenLokaler und globaler RaumDiagonale GeschwindigkeitAbstand zwischen ObjektenVector3 ist eine StrukturRückblick: Drohnenpilot8GameObjects und Komponenten
Referenzen im InspectorEine Komponente abrufenFehlende KomponentenEine Komponente hinzufügenRequireComponentEin- und AusblendenRückblick: Lichtschalter11Prefabs und Erzeugen von Instanzen
Prefabs und InstantiateNach Zeitintervall erzeugenIn einem Raster erzeugenListen von ObjektenDas Neueste zurücknehmenZerstörenZufälliges ErzeugenRückblick: Feuerwerk14Abschließende Herausforderungen
MünzmagnetDie Straße überquerenStraßenverkehrTurmbauerLanden oder verfehlen3Der Inspector
Inspector-FelderSerializeFieldFließkommazahlen und MathfInspector-AttributeRückblick: Aufzug6Transformationen und Hierarchie
Eltern und KinderHisse die FlaggeSkalierungDinge anschauenAuf einen Punkt zubewegenRückblick: Mond in Umlaufbahn9Projekt: Fang den Stern
Der FängerEin fallender Stern12Der Lebenszyklus eines Skripts
Awake und StartUpdate und LateUpdateOnEnable und OnDisableDie Reihenfolge im LebenszyklusRückblick: Lifecycle LoggerÜbe selbstständig: Unity-Playground