Menu
CoddyTech

Ściana

Lekcja 5 z 19 w kursie Gra w Unity: Brick Breaker w Coddy.

Cegły stoją w siatce: rzędy od góry w dół, kolumny od lewej do prawej; każda jest kopią prefabrykatu Brick utworzoną w dwóch zagnieżdżonych pętlach. Najpierw jeden rząd:

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);
}

Między n kolumnami jest n minus 1 odstępów, więc pierwsza z nich znajduje się w odległości połowy (n - 1) * spacing w lewo: 5 kolumn oddalonych od siebie o 2 stoi w punktach -4, -2, 0, 2 i 4. Każdy kolejny rząd znajduje się o spacingY niżej od poprzedniego. Czwarty argument funkcji Instantiate to obiekt nadrzędny, więc każda cegła znajduje się w obiekcie Wall. Jeśli pole prefabrykatu ma typ skryptu, taki jak Brick, Instantiate zwraca skrypt nowej cegły.

challenge icon

Wyzwanie

Średni

Zbuduj wyśrodkowaną ścianę z cegieł.

  1. W GameManager dodaj public Brick brickPrefab;, public Transform wall;, rows = 5, columns = 9, spacingX = 1.75f, spacingY = 0.75f, topY = 6f.
  2. BuildWall(): umieść cegłę pod wall dla każdego wiersza i kolumny, w punkcie x left + col * spacingX, y topY - row * spacingY, z 0, gdzie left = -(columns - 1) * spacingX / 2f.
  3. Start() wywołuje BuildWall().

Naciśnij „Graj”: 45 cegieł tworzy siatkę (jeszcze się nie rozpadają). Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

using UnityEngine;

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

    void Awake()
    {
        Instance = this;
    }

    // Później: ściana z cegieł, wynik, życia i poziomy.
}

Wszystkie lekcje w sekcji Gra w Unity: Brick Breaker

Poćwicz samodzielnie: Edytor online Unity