Array
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 41 di 85.
Un array contiene molti valori dello stesso tipo in sequenza. Il suo tipo ha parentesi quadre dopo il nome e i valori sono racchiusi tra parentesi graffe:
int[] scores = { 10, 25, 7 };Ogni valore ha un indice, la sua posizione nella sequenza, e il conteggio inizia da 0: scores[0] è 10, scores[1] è 25 e scores[2] è 7. scores.Length indica quanti valori ci sono: in questo caso, 3. Se chiedi scores[3], lo script si interrompe con un'IndexOutOfRangeException: non esiste un quarto valore.
Un ciclo for fino a Length visita ogni valore, indipendentemente da quanti valori contiene l'array:
for (int i = 0; i < scores.Length; i++)
{
Debug.Log("Score " + i + ": " + scores[i]);
}Quando non ti serve l'indice, foreach è più breve: foreach (int s in scores) { Debug.Log(s); } viene eseguito una volta per ogni valore, in ordine.
Sfida
MedioRealizza uno skyline lungo 7 torri con un array e un ciclo.
- Aggiungi
6fe2falla fine diheights:{ 2f, 5f, 3f, 1f, 4f, 6f, 2f }. - Sostituisci la riga
PlaceTowerconfor (int i = 0; i < heights.Length; i++). - Al suo interno, chiama
PlaceTower(i * 1.5f - 4.5f, heights[i]);.
Premi «Gioca»: sette torri di altezze diverse si ergono in fila. Poi premi «Verifica».
Provalo tu
using UnityEngine;
public class Skyline : MonoBehaviour
{
void Start()
{
float[] heights = { 2f, 5f, 3f, 1f, 4f };
// Posiziona una torre per ogni altezza.
PlaceTower(-4.5f, heights[0]);
}
void PlaceTower(float x, float height)
{
GameObject tower = GameObject.CreatePrimitive(PrimitiveType.Cube);
tower.name = "Tower";
tower.transform.position = new Vector3(x, height / 2, 0);
tower.transform.localScale = new Vector3(1, height, 1);
tower.GetComponent<Renderer>().material.color = new Color(0.35f, 0.45f, 0.7f);
}
}
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