Unity:将Vector2转换为Vector2Int

Tim*_*ean 1 c# vector unity-game-engine

我有一个Vector2,我想将其转换为一个Vector2Int。我知道我可以这样转换Vector2:

Vector2 v2 = new Vector2(10, 10);
Vector2Int v2i;

v2i = new Vector2Int((int) v2.x, (int) v2.y);
Run Code Online (Sandbox Code Playgroud)

但是,有没有更短或更有效的方法?例如这样的事情:

v2i = v2.toVector2Int();
Run Code Online (Sandbox Code Playgroud)

小智 8

有一个内置的静态方法:

Vector2 v2 = new Vector2(10, 10);
Vector2Int v2i = Vector2Int.RoundToInt(v2);
Run Code Online (Sandbox Code Playgroud)

您还可以根据需要使用 Vector2.CeilToInt(Vector2 v) 和 Vector2.FloorToInt(Vector2 v)


cax*_*xac 5

您可以使用扩展方法使其更具可读性:

public static Vector2Int ToInt2(this Vector2 v)
{
    return new Vector2Int((int)v.x, (int)v.y);
}
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

Vector2 v2 = new Vector2(10, 10);
Vector2Int v2i = v2.ToInt2();
Run Code Online (Sandbox Code Playgroud)