作者的话
RectTransform是ugui的基石,所以这个类需要有一种简单直接的理解方法,写这篇文字希望能加快大家对ugui的理解速度,减少试验时间。特别是anchoredPosition ,sizeDelta ,描述的比图片还要简洁直观。
关键词定义
- 矩形框:RectTransform的边界框。
- 轴点:矩形框的旋转点和控制点,用相对于矩形框的归一化坐标表示, (0,0)矩形框的下左角,(1,1)矩形框的右上角。
- 锚点:用归一化坐标描述父级矩形框中的一个比例位置。
- 锚框:如果锚定不在一个点上,那么会有四个锚边,这四个锚边组成一个矩形叫做锚框。
RectTransform: Transform 类
RectTransform 表示矩形的 位置,大小,锚点和轴点信息。
RectTransform 用于GUI 但同样可以用于其它想到的情况。它被用来存储操控矩形的位置,大小,锚点并且支持多种基于父级RectTransform的缩放变形。
RectTransform.anchoredPosition(读写)
anchoredPosition是轴点相对于锚点的的位置。如果锚定不在一个点上那么anchoredPosition是轴点相对于锚框中心点的位置。
RectTransform.anchoredPosition3D(读写)
和RectTransform.anchoredPosition一样,但是返回的是一个vector3向量,z==transform.localRotation.z
RectTransform.anchorMax(读写)
锚框上右角在父级RectTransform中的归一化位置
RectTransform.anchorMin(读写)
锚框下左角在父级RectTransform中的归一化位置
RectTransform.offsetMax(读写)
RectTransform矩形框上右角相对于锚框上右角的偏移量
RectTransform.offsetMin(读写)
RectTransform矩形框下左角相对于锚框下左角的偏移量
RectTransform.pivot(读写)
轴点的位置
RectTransform.rect(只读)
RectTransform的矩形框,使用tranform本地空间坐标表示
RectTransform.sizeDelta(读写)
RectTransform.sizeDelta=矩形框大小(width,height)-锚框大小(width,height)
当锚定在一个点时锚框大小==(0,0)
RectTransform.GetLocalCorners (Vector3[] fourCornersArray)
获取矩形框四个角的坐标,使用tranform本地坐标表示
RectTransform.GetWorldCorners (Vector3[] fourCornersArray)
获取矩形框四个角的坐标,使用世界坐标表示
SetInsetAndSizeFromParentEdge(RectTransform.Edge edge, float inset, float size);
布置RectTransform,指定参考边(上,下,左,右) 和相对于参考边的距离inset 还有和inset相同方向上的大小
RectTransform. SetSizeWithCurrentAnchors (RectTransform.Axis axis, float size)
设置RectTransform轴向上的大小,指定轴向(X,Y) 和 大小