我在列表中有4个Vector2,我想将它们排序为
Vector2 topleft
Vector2 topright
Vector2 bottomleft
Vector2 bottomright
我试过比较距离但没有成功。 我想快速解决我的问题
答案 0 :(得分: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;
}
}