BadGuy
using UnityEngine; using System.Collections; using System; //这允许 IComparable 接口 //这是您将存储在 //不同集合中的类。为了使用 //集合的 Sort() 方法,此类需要 //实现 IComparable 接口。 public class BadGuy : IComparable<BadGuy> { public string name; public int power; public BadGuy(string newName, int newPower) { name = newName; power = newPower; } //IComparable 接口需要 //此方法。 public int CompareTo(BadGuy other) { if(other == null) { return 1; } //返回力量差异。 return power - other.power; } }
SomeClass
using UnityEngine; using System.Collections; using System.Collections.Generic; public class SomeClass : MonoBehaviour { void Start () { //这是创建列表的方式。注意如何在 //尖括号 (< >) 中指定类型。 List<BadGuy> badguys = new List<BadGuy>(); //这里将 3 个 BadGuy 添加到列表 badguys.Add( new BadGuy("Harvey", 50)); badguys.Add( new BadGuy("Magneto", 100)); badguys.Add( new BadGuy("Pip", 5)); badguys.Sort(); foreach(BadGuy guy in badguys) { print (guy.name + " " + guy.power); } //这会清除列表,使其 //为空。 badguys.Clear(); } }
SomeOtherClass
using UnityEngine; using System.Collections; using System.Collections.Generic; public class SomeOtherClass : MonoBehaviour { void Start () { //这是创建字典的方式。注意这是如何采用 //两个通用术语的。在此情况中,您将使用字符串和 //BadGuy 作为两个值。 Dictionary<string, BadGuy> badguys = new Dictionary<string, BadGuy>(); BadGuy bg1 = new BadGuy("Harvey", 50); BadGuy bg2 = new BadGuy("Magneto", 100); //可以使用 Add() 方法将变量 //放入字典中。 badguys.Add("gangster", bg1); badguys.Add("mutant", bg2); BadGuy magneto = badguys["mutant"]; BadGuy temp = null; //这是一种访问字典中值的更安全 //但缓慢的方法。 if(badguys.TryGetValue("birds", out temp)) { //成功! } else { //失败! } } }