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)
您可以使用扩展方法使其更具可读性:
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)