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);
}
}
}