RectTransform
Unity UGUI RectTransform 解析
RectTransform 是 Unity UI 系统中的一个核心组件,用于控制 UI 元素的位置、大小和旋转。以下是对其关键属性的详细解析:
1. 锚点(Anchors)
锚点定义了 UI 元素相对于其父对象的锚定位置。默认情况下,锚点位于四个角(左上、右上、左下、右下)以及中心。
- Anchor Min 和 Anchor Max 定义了锚点的最小和最大值,范围从 0 到 1。
- (0, 0) 表示锚点在父对象的左下角。
- (1, 1) 表示锚点在父对象的右上角。
- (0.5, 0.5) 表示锚点在父对象的中心。
2. 锚点位置(Anchored Position)
锚点位置定义了 UI 元素相对于锚点的位置。这个值会根据锚点的变化而变化。
- Pivot 定义了锚点点对齐的方式,范围从 0 到 1。
- (0, 0) 表示左下角对齐。
- (1, 1) 表示右上角对齐。
- (0.5, 0.5) 表示中心对齐。
3. 大小(Size Delta)
大小定义了 UI 元素的宽度和高度。
- Width 和 Height 定义了 UI 元素的实际大小。
4. 示例
假设有一个 RectTransform 组件,其锚点设置为 (0, 0) 到 (1, 1),锚点位置为 (0.5, 0.5),Pivot 也为 (0.5, 0.5),大小为 (100, 100)。
- Anchor Min 和 Anchor Max: (0, 0) 到 (1, 1)
- Anchored Position: (0.5, 0.5)
- Pivot: (0.5, 0.5)
- Width: 100
- Height: 100
在这种情况下,UI 元素会从父对象的左下角开始,以中心点为基准,向右上角扩展 100 像素。
5. 动态调整
可以通过脚本动态调整 RectTransform 的属性:
RectTransform rectTransform = GetComponent<RectTransform>(); rectTransform.sizeDelta = new Vector2(200, 200); 6. 锚点不重合的情况
当锚点不重合时,UI 元素的大小和位置会根据锚点的比例进行调整。
- Left, Top, Right, Bottom: 定义了锚点的四个边相对于 UI 的距离。
- 当
sizeDelta调整时,UI 元素会根据锚点比例进行放大或缩小。
7. 特殊模式
- Blueprint Mode: 按下 Shift 键可以快速设置锚点中心点,并且只影响锚点变化。
- Raw Edit Mode (R): 按下 R 键可以进入原始编辑模式,调整 Pivot 值会影响 UI 位置。
通过理解这些属性和模式,可以更灵活地控制 Unity UI 元素的布局和行为。