private static Vector3 GetPointOnRectEdge(RectTransform rect, Vector2 dir)
{
if (rect == null)
{
return Vector3.zero;
}
if (dir != Vector2.zero)
{
dir = (Vector2) (dir / Mathf.Max(Mathf.Abs(dir.x), Mathf.Abs(dir.y)));
}
dir = rect.rect.center + Vector2.Scale(rect.rect.size, (Vector2) (dir * 0.5f));
return (Vector3) dir;
}