Menu
CoddyTech

Die Mauer

Lektion 5 von 19 im Kurs Unity-Spiel: Brick Breaker von Coddy.

Die Ziegel stehen in einem Raster: Die Reihen verlaufen von oben nach unten, die Spalten von links nach rechts; jeder Ziegel ist eine Kopie des Brick-Prefabs, die in zwei verschachtelten Schleifen erstellt wird. Zuerst eine Reihe:

float left = -(columns - 1) * spacingX / 2f;
for (int col = 0; col < columns; col++)
{
    Vector3 pos = new Vector3(left + col * spacingX, topY, 0f);
    Instantiate(brickPrefab, pos, Quaternion.identity, wall);
}

Zwischen n Spalten gibt es n minus 1 Abstände, daher liegt die erste Spalte um die Hälfte von (n - 1) * spacing weiter links: 5 Spalten mit einem Abstand von 2 stehen bei -4, -2, 0, 2 und 4. Jede Reihe liegt um spacingY tiefer als die vorherige. Das vierte Argument von Instantiate ist das übergeordnete Objekt, daher befindet sich jeder Ziegel unter dem Wall-Objekt. Wenn das Prefab-Feld einen Skripttyp wie Brick verwendet, gibt Instantiate das Skript des neuen Ziegels zurück.

challenge icon

Aufgabe

Mittel

Baue eine zentrierte Ziegelwand.

  1. Füge in GameManager Folgendes hinzu: public Brick brickPrefab;, public Transform wall;, rows = 5, columns = 9, spacingX = 1.75f, spacingY = 0.75f, topY = 6f.
  2. BuildWall(): Erzeuge für jede Zeile und Spalte einen Ziegel unter wall, bei x left + col * spacingX, y topY - row * spacingY, z 0, mit left = -(columns - 1) * spacingX / 2f.
  3. Start() ruft BuildWall() auf.

Drücke „Spielen“: 45 Ziegel stehen in einem Raster (sie zerbrechen noch nicht). Drücke dann „Prüfen“.

Probier es selbst

using UnityEngine;

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

    void Awake()
    {
        Instance = this;
    }

    // Später: die Ziegelsteinmauer, der Punktestand, die Leben und die Level.
}

Alle Lektionen in Unity-Spiel: Brick Breaker

Übe selbstständig: Unity-Playground