Cicli annidati
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 38 di 85.
Una riga richiede un ciclo. Un intero piano, con righe e colonne, richiede un ciclo dentro un ciclo:
for (int column = 0; column < 3; column++)
{
for (int row = 0; row < 2; row++)
{
Debug.Log(column + ", " + row);
}
}Per ogni iterazione del ciclo esterno, il ciclo interno viene eseguito fino in fondo. Quindi stampa 0, 0 e 0, 1, poi 1, 0 e 1, 1, poi 2, 0 e 2, 1: 3 colonne per 2 righe, 6 righe in tutto.
I due cicli hanno bisogno di contatori con nomi diversi. Qui prendono il nome da ciò che contano, column e row, il che rende il codice più facile da leggere rispetto a i e j.
Sfida
MedioDisponi un pavimento di 12 piastrelle: 4 colonne, 3 righe.
- In
Start(), sostituisciPlaceTile(0, 0);confor (int column = 0; column < 4; column++). - All'interno delle sue parentesi graffe, scrivi
for (int row = 0; row < 3; row++)e chiamaPlaceTile(column, row);all'interno di questo ciclo interno.
Premi «Gioca»: apparirà un pavimento di 4 per 3 piastrelle. Poi premi «Verifica».
Provalo tu
using UnityEngine;
public class TileFloor : MonoBehaviour
{
void Start()
{
// Disponi 4 colonne e 3 righe di piastrelle.
PlaceTile(0, 0);
}
void PlaceTile(int column, int row)
{
GameObject tile = GameObject.CreatePrimitive(PrimitiveType.Cube);
tile.name = "Tile";
tile.transform.position = new Vector3(column * 1.1f - 1.65f, 0.1f, row * 1.1f);
tile.transform.localScale = new Vector3(1, 0.2f, 1);
tile.GetComponent<Renderer>().material.color = new Color(0.85f, 0.85f, 0.9f);
}
}
Tutte le lezioni di Fondamenti di scripting in Unity
1Nozioni di base di C# in Unity
Ciao, UnityVariabiliI numeri decimali richiedono una fTesto nella ConsoleVariabili che ricordanoIf ed ElseConfrontare i numeriRipasso: il collezionista di monete7Cicli e metodi
Ripeti con forCicli annidatiScrivere un metodoMetodi che restituiscono valoriArrayRiepilogo: scala10Trovare gli oggetti
Trovare per nomeTagTrovare per tipoI riferimenti battono la ricercaIl null di UnityRipasso: la moneta più vicina13Progetto: Schiva i blocchi
Il corridoreBlocchi dal cielo2Fallo muovere
Posiziona il cuboMuovilo a ogni frameRuotalo ogni secondoGuidalo con i tastiRiepilogo: guida il cubo5Vettori
Somma di vettoriDirezioniSpazio locale e spazio mondoVelocità diagonaleDistanza tra gli oggettiVector3 è una structRiepilogo: pilota di droni8GameObject e componenti
Riferimenti nell'InspectorOttenere un componenteComponenti mancantiAggiungere un componenteRequireComponentMostrare e nascondereRiepilogo: interruttore della luce3L’Inspector
Campi dell’InspectorSerializeFieldNumeri decimali e MathfAttributi dell’InspectorRiepilogo: ascensore6Trasformazioni e gerarchia
Genitori e figliIssare la bandieraScalaOsservare gli oggettiMuoversi verso un puntoRiepilogo: Luna in orbita9Progetto: Acchiappa la stella
Il raccoglitoreUna stella cadente12Il ciclo di vita dello script
Awake e StartUpdate e LateUpdateOnEnable e OnDisableL'ordine del ciclo di vitaRiepilogo: Lifecycle LoggerEsercitati da solo: Playground Unity