4 Vector2 指向左上角 右上角 左下角 右下角

4 Vector2 points to top left top right bottom left bottom right

我在列表中有 4 个 Vector2,我想将它们排序为

Vector2 topleft
Vector2 topright
Vector2 bottomleft
Vector2 bottomright

我试过比较距离,但没有成功。 我想要一种快速解决我的问题的方法

您可以将向量放在一个数组中并创建一个比较器方法,现在您可以根据自己的比较器方法对数组进行排序:

     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;
         }
     }