Menu
CoddyTech

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.

challenge icon

Sfida

Medio

Realizza uno skyline lungo 7 torri con un array e un ciclo.

  1. Aggiungi 6f e 2f alla fine di heights: { 2f, 5f, 3f, 1f, 4f, 6f, 2f }.
  2. Sostituisci la riga PlaceTower con for (int i = 0; i < heights.Length; i++).
  3. 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

Esercitati da solo: Playground Unity