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.
Sfida
MedioCostruisci 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
}
}
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
1Il tuo primo script
Ciao, UnityPosiziona il cuboMuovi a ogni frameRuota ogni secondoGuida con i tastiRiepilogo: guida il cubo4Vettori
Sommare vettoriDirezioniSpazio locale e spazio globaleVelocità diagonaleDistanza tra gli oggettiVector3 è una structRiepilogo: pilota di droni7Progetto: Acchiappa la stella
L'acchiappatoreUna stella cadente10Il ciclo di vita degli script
Awake e StartUpdate e LateUpdateOnEnable e OnDisableL’ordine del ciclo di vitaRipasso: logger del ciclo di vita2L'Inspector
Campi dell'InspectorSerializeFieldNumeri decimali e MathfAttributi dell'InspectorRiepilogo: Ascensore5Trasformazioni e gerarchia
Genitori e figliScalaGuarda gli oggettiMuoversi verso un puntoRiepilogo: Luna in orbita6Oggetti di gioco e componenti
Riferimenti nell’InspectorOttenere un componenteComponenti mancantiAggiungere un componenteRequireComponentMostrare e nascondereRipasso: interruttore della luce9Prefab e generazione di oggetti
Prefab e InstantiateGenerare oggetti con un timerGenerare oggetti in una grigliaElenchi di oggettiDistruggere oggettiGenerazioni casualiRiepilogo: fuochi d'artificio