[Serializable]
public enumTerrainType{
Player =-1, Empty =0, Wall =1, Coin, Gem, Flower, Goal, Spike, Belt, TurnBelt, Lever, Door, Key, Portal, Rock,}[Serializable]
public class TerrainUnit
{
public TerrainType Type;
public int State;}
[Serializable]
public class TerrainUnit
{
public TerrainType Type;
public int State;// 重写比较函数
public override bool Equals(object obj){
TerrainUnit other = obj as TerrainUnit;int x1 =GetHashCode();int x2 = other.GetHashCode();return x1 == x2;}// 重写哈希值
public override intGetHashCode(){return((int)Type)*100+ State;}}
使用 SortedDictionary 进行修改
既然是一个字典,那么我们需要重写比较函数
[Serializable]
public class TerrainUnit : IComparable // 注意这里需要继承这个比较接口{
public TerrainType Type;
public int State;// 写一下比较函数,注意函数的返回类型需要是 int// -1 表示目前的小,0 表示相同,1 表示目前的大
public intCompareTo(object obj){
TerrainUnit other = obj as TerrainUnit;if(other == null)return1;if(Type != other.Type){if(Type < other.Type)return-1;return1;}if(State != other.State){if(State < other.State)return-1;return1;}return0;}}