Unity3D Extension扩展方法(三):扩展RectTransform
发表于2018-07-16
RectTransform主要提供一个矩形的位置、尺寸、锚点和中心信息以及操作这些属性的方法,同时提供多种基于父级RectTransform的缩放形式。那下面我们就来看看RectTransform扩展。
Size 尺寸扩展
1.获取UI尺寸
public static Vector2 GetSize(this RectTransform rect) { return rect.rect.size; }
2.设置UI尺寸的几种常用实现
public static void SetSize(this RectTransform rect, float width, float height) { rect.SetWidth(width); rect.SetHeight(height); }
public static void SetSize(this RectTransform rect, Vector2 size) { rect.SetWidth(size.x); rect.SetHeight(size.y); }
public static void SetWidth(this RectTransform rect, float width) { rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, width); }
public static void SetHeight(this RectTransform rect, float height) { rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, height); }
顶点扩展
1.获取顶点坐标数组
返回结果的顶点索引为
左上角:1
右上角:2
左下角:0
右下角:3
public static Vector3[] GetCorners(this RectTransform rect, bool isWorldSpace = true) { var corners = new Vector3[4]; if (isWorldSpace) { rect.GetWorldCorners(corners); } else { rect.GetLocalCorners(corners); } return corners; }
2.获取单个顶点
public static Vector3 GetLeftBottonCorner(this RectTransform rect, bool isWorldSpace = true) { var corners = rect.GetCorners(isWorldSpace); return corners[0]; }
public static Vector3 GetLeftTopCorner(this RectTransform rect, bool isWorldSpace = true) { var corners = rect.GetCorners(isWorldSpace); return corners[1]; }
public static Vector3 GetRightTopCorner(this RectTransform rect, bool isWorldSpace = true) { var corners = rect.GetCorners(isWorldSpace); return corners[2]; }
public static Vector3 GetRightBottonCorner(this RectTransform rect, bool isWorldSpace = true) { var corners = rect.GetCorners(isWorldSpace); return corners[3]; }
Unity Extension扩展方法系列
如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引