Il muro
Lezione 5 di 19 del corso Gioco in Unity: Rompi i mattoni di Coddy.
I mattoni sono disposti in una griglia: righe dall’alto verso il basso, colonne da sinistra a destra, ciascuno una copia del prefab Brick creata con due cicli annidati. Prima una riga:
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);
}Tra n colonne ci sono n meno 1 spazi, quindi il primo mattone si trova a metà di (n - 1) * spacing verso sinistra: 5 colonne distanziate di 2 si trovano a -4, -2, 0, 2 e 4. Ogni riga si trova spacingY più in basso rispetto alla precedente. Il quarto argomento di Instantiate è il genitore, quindi ogni mattone si trova sotto l’oggetto Wall. Se il campo del prefab ha un tipo di script come Brick, Instantiate restituisce lo script del nuovo mattone.
Sfida
MedioCrea una parete di mattoni centrata.
- In
GameManager, aggiungipublic Brick brickPrefab;,public Transform wall;,rows = 5,columns = 9,spacingX = 1.75f,spacingY = 0.75f,topY = 6f. BuildWall(): un mattone sottowallper ogni riga e colonna, in xleft + col * spacingX, ytopY - row * spacingY, z 0, conleft = -(columns - 1) * spacingX / 2f.Start()chiamaBuildWall().
Premi «Gioca»: 45 mattoni formano una griglia (non si rompono ancora). Poi premi «Verifica».
Provalo tu
using UnityEngine;
public class GameManager : MonoBehaviour
{
public static GameManager Instance;
void Awake()
{
Instance = this;
}
// Più avanti: il muro di mattoni, il punteggio, le vite e i livelli.
}
Tutte le lezioni di Gioco in Unity: Rompi i mattoni
Esercitati da solo: Playground Unity