BadGuy

  1. using System; //这允许 IComparable 接口
  2. //这是您将存储在不同集合中的类。为了使用集合的 Sort() 方法,此类需要实现 IComparable 接口。
  3. public class BadGuy : IComparable<BadGuy>
  4. {
  5. public string name;
  6. public int power;
  7. public BadGuy(string newName, int newPower)
  8. {
  9. name = newName;
  10. power = newPower;
  11. }
  12. //IComparable 接口需要此方法。
  13. public int CompareTo(BadGuy other)
  14. {
  15. if(other == null)
  16. {
  17. return 1;
  18. }
  19. //返回力量差异。
  20. return power - other.power;
  21. }
  22. }

SomeClass

  1. public class SomeClass : MonoBehaviour
  2. {
  3. void Start ()
  4. {
  5. //这是创建列表的方式。注意如何在
  6. //尖括号 (< >) 中指定类型。
  7. List<BadGuy> badguys = new List<BadGuy>();
  8. //这里将 3 个 BadGuy 添加到列表
  9. badguys.Add( new BadGuy("Harvey", 50));
  10. badguys.Add( new BadGuy("Magneto", 100));
  11. badguys.Add( new BadGuy("Pip", 5));
  12. badguys.Sort();
  13. foreach(BadGuy guy in badguys)
  14. {
  15. print (guy.name + " " + guy.power);
  16. }
  17. //这会清除列表,使其
  18. //为空。
  19. badguys.Clear();
  20. }
  21. }

SomeOtherClass

  1. public class SomeOtherClass : MonoBehaviour
  2. {
  3. void Start ()
  4. {
  5. //这是创建字典的方式。注意这是如何采用
  6. //两个通用术语的。在此情况中,您将使用字符串和
  7. //BadGuy 作为两个值。
  8. Dictionary<string, BadGuy> badguys = new Dictionary<string, BadGuy>();
  9. BadGuy bg1 = new BadGuy("Harvey", 50);
  10. BadGuy bg2 = new BadGuy("Magneto", 100);
  11. //可以使用 Add() 方法将变量
  12. //放入字典中。
  13. badguys.Add("gangster", bg1);
  14. badguys.Add("mutant", bg2);
  15. BadGuy magneto = badguys["mutant"];
  16. BadGuy temp = null;
  17. //这是一种访问字典中值的更安全
  18. //但缓慢的方法。
  19. if(badguys.TryGetValue("birds", out temp))
  20. {
  21. //成功!
  22. }
  23. else
  24. {
  25. //失败!
  26. }
  27. }
  28. }