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;
}
}
我在列表中有 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;
}
}