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
}
}