namespace UnityEngine { public static class Vector2Extensions { /// /// 取 的 (x, y) 转换为 的 (x, 0, y)。 /// /// 要转换的 Vector2。 /// 转换后的 Vector3。 public static Vector3 ToVector3(this Vector2 vector2) { return new Vector3(vector2.x, 0f, vector2.y); } /// /// 取 的 (x, y) 和给定参数 y 转换为 的 (x, 参数 y, y)。 /// /// 要转换的 Vector2。 /// Vector3 的 y 值。 /// 转换后的 Vector3。 public static Vector3 ToVector3(this Vector2 vector2, float y) { return new Vector3(vector2.x, y, vector2.y); } /// /// 判断值是否在向量区间内。 /// public static bool InRange(this Vector2 vector, float value, bool equal = false) { return equal ? value >= vector.x && value <= vector.y : value > vector.x && value < vector.y; } /// /// 判断角度是否在向量表示的角度区间内。 /// public static bool InDegrees(this Vector2 vector, float value, bool equal = false) { if (vector.x > vector.y) { return equal ? value >= (vector.x - 360f) && value <= vector.y : value > (vector.x - 360f) && value < vector.y; } return equal ? value >= vector.x && value <= vector.y : value > vector.x && value < vector.y; } /// /// 从区间内取随机值。 /// public static float Random(this Vector2 vector) { return UnityEngine.Random.Range(vector.x, vector.y); } } }