2015-02-08 76 views
0

我有4 Vector2在列表中,我想通過比較距離他們排序,以4 Vector2點左上右上左下右下

Vector2 topleft 
Vector2 topright 
Vector2 bottomleft 
Vector2 bottomright 

我都試過,但沒有成功。 我想是解決我的問題

回答

1

你可以把向量的數組中,並創建一個比較器的方法,現在你可以在自己的比較器方法的基礎數組進行排序的快捷方式:

 public Vector2[] directions=new Vector2[4];// put your vectors here 


    void Sort() 
    { 
     Array.Sort(directions, Vector2Compare);  
    } 


    private int Vector2Compare(Vector2 value1, Vector2 value2) 
    { 
     // NOTE: THESE DEPENDS ON HOW YOU EVALUATE TOP/LEFT/RIGHT/BOTTOM , X and Y 
     if (value1.x < value2.x) 
     { 
      return -1; 
     } 
     else if(value1.x == value2.x) 
     { 
      if(value1.y < value2.y) 
      { 
       return -1; 
      } 
      else if(value1.y == value2.y) 
      { 
       return 0; 
      } 
      else 
      { 
       return 1; 
      } 
     } 
     else 
     { 
      return 1; 
     } 
    } 
相關問題