Menu
CoddyTech

Generare oggetti in una griglia

Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 50 di 67.

Un ciclo dentro di un ciclo visita ogni cella di una griglia: il ciclo esterno sceglie una colonna, quello interno la percorre. Inserisci un Instantiate all'interno e ogni cella riceverà un oggetto. In questo modo si crea un pavimento di 3 per 3 usando tessere larghe 2 unità, quindi le tessere sono distanziate di 2 unità:

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

Le tessere si trovano in x = 0, 2, 4 e z = 0, 2, 4: nove in tutto, da (0, 0, 0) a (4, 0, 4). I cicli vengono eseguiti in Start(), una volta. In Update() aggiungerebbero altre nove tessere a ogni frame.

Il quarto argomento è un genitore. Nove oggetti Tile(Clone) non raggruppati ingombrerebbero la Hierarchy; passando transform, li raggruppi sotto l'oggetto a cui è associato questo script, il Floor, così puoi comprimerli, spostarli insieme o eliminarli insieme. La posizione che passi è comunque una posizione nel mondo.

challenge icon

Sfida

Medio

Costruisci un muro di mattoni usando il prefab Brick, largo 4 mattoni e alto 5 file, appoggiato a terra. Un mattone è largo 1 unità e alto 0.5.

  • Le 4 colonne si trovano a x = -1.5, -0.5, 0.5 e 1.5.
  • La fila inferiore poggia a terra, quindi i suoi mattoni si trovano a y = 0.25. Ogni fila è 0.5 più in alto di quella sottostante.
  • Ogni mattone si trova a z = 0, non ha rotazione ed è figlio di Wall, l’oggetto su cui si trova questo script.

Premi Play per vedere il muro, poi Check.

Provalo tu

using UnityEngine;

public class WallBuilder : MonoBehaviour
{
    public GameObject brickPrefab;

    void Start()
    {
        // 4 colonne per 5 file di mattoni, ciascuno figlio di questo Wall
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti di scripting in Unity