Menu
CoddyTech

In einem Raster erzeugen

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

Eine Schleife innerhalb einer Schleife besucht jede Zelle eines Rasters: Die äußere Schleife wählt eine Spalte aus, die innere läuft an ihr entlang. Füge darin ein Instantiate ein, und jede Zelle erhält ein Objekt. So entsteht aus Kacheln, die 2 Einheiten breit sind und 2 Einheiten Abstand haben, ein 3 mal 3 Einheiten großer Boden:

public GameObject tilePrefab;

void Start()
{
    for (int x = 0; x < 3; x++)
    {
        for (int z = 0; z < 3; z++)
        {
            Vector3 spot = new Vector3(x * 2, 0, z * 2);
            Instantiate(tilePrefab, spot, Quaternion.identity, transform);
        }
    }
}

Die Kacheln landen bei x = 0, 2, 4 und z = 0, 2, 4: insgesamt neun, von (0, 0, 0) bis (4, 0, 4). Die Schleifen laufen einmal in Start(). In Update() würden sie in jedem Frame neun weitere Kacheln hinzufügen.

Das vierte Argument ist ein übergeordnetes Objekt. Neun lose Tile(Clone)-Objekte würden die Hierarchy unübersichtlich machen; mit transform werden sie dem Objekt untergeordnet, an dem dieses Skript hängt – dem Boden. So kannst du sie einklappen, gemeinsam verschieben oder zusammen löschen. Die Position, die du übergibst, ist weiterhin eine Weltposition.

challenge icon

Aufgabe

Mittel

Baue eine Wand aus Brick-Prefabs, 4 breit und 5 hoch.

  1. Schleife in Start() c von 0 bis 3 durch und darin r von 0 bis 4.
  2. Rufe in der inneren Schleife Instantiate(brickPrefab, new Vector3(-1.5f + c, 0.25f + r * 0.5f, 0), Quaternion.identity, transform) auf. Das letzte Argument macht jeden Ziegel zu einem Kindobjekt der Wand.

Drücke „Spielen“: Eine Wand aus 20 Ziegeln steht auf dem Boden. Drücke dann „Prüfen“.

Probier es selbst

using UnityEngine;

public class WallBuilder : MonoBehaviour
{
    public GameObject brickPrefab;

    void Start()
    {
        // 4 Spalten mit 5 Reihen aus Ziegelsteinen, jeder ein Kindobjekt dieser Wall
    }
}

Alle Lektionen in Unity-Scripting: Grundlagen

Übe selbstständig: Unity-Playground