Classe List rappresenta un elenco fortemente tipizzato di oggetti accessibili tramite indice. Fornisce metodi per la ricerca, l’ordinamento e la modifica degli elenchi.
Questa classe può contenere ogni tipo di variabile, int, string etc…
Possiamo utilizzare List al posto di Array vista la sua maggiore flessibilità.

Creare lo script BadGuy.cs, NON allegarlo a nessun oggetto
Questo script definisce solamente la struttura della lista


using UnityEngine;
using System.Collections;


//This is the class you will be storing
//in the different collections. In order to use
//a collection's Sort() method, this class needs to
//implement the IComparable interface.
public class BadGuy 
{
    public string name; // proprietà
    public int power;

    // metodo costruttore per ricevere l'input dei parametri
    public BadGuy(string newName, int newPower)
    {
        name = newName;
        power = newPower;
    }
}

Creare un Empty Object ed allegare SomeClass.cs


using UnityEngine;
using System.Collections;
using System.Collections.Generic; // per usare la lista

public class SomeClass : MonoBehaviour
{
    void Start()
    {
        // istanzio la lista, notare la sintassi
        List<BadGuy> badguys = new List<BadGuy>();
        // popolo la ista
        // lista Add new costruttore (parametri)
        badguys.Add(new BadGuy("Harvey", 50));
        badguys.Add(new BadGuy("Magneto", 100));
        badguys.Add(new BadGuy("Pip", 5));

        // inserisce all'indice 1
        badguys.Insert(1, new BadGuy("Joker", 200));

        // accedo alla lista con un indice come un array
        int counter = badguys.Count; // conta gli elementi presenti nella lista
        Debug.Log(counter); // print 4

        string enemy = badguys[0].name; // lista[indice].nomeproprietà
        Debug.Log(enemy); // print Harvey
        enemy = badguys[1].name; // lista[indice].nomeproprietà
        Debug.Log(enemy); // print Joker

        badguys.RemoveAt(0); // rimuove a indice 0
        counter = badguys.Count; // conta gli elementi presenti nella lista
        Debug.Log(counter); // print 3

	foreach (BadGuy guy in badguys)
        {
            print(guy.name + " " + guy.power);
        }
        // print Joker 200 Magneto 100 Pip 5

        badguys.Clear(); // cancella tutto il contenuto della lista
        counter = badguys.Count; // conta gli elementi presenti nella lista
        Debug.Log(counter); // print 0
    }
}