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