Unity UI系统中RectTransform详解

发布于:2025-05-31 ⋅ 阅读:(22) ⋅ 点赞:(0)

一、基础代码示例

public GameObject node; 
var rect = node.GetComponent<RectTransform>();

Debug.Log($"anchoredPosition----{rect.anchoredPosition}");
Debug.Log($"offsetMin.x--{rect.offsetMin}");
Debug.Log($"offsetMax.x--{rect.offsetMax}");
Debug.Log($"rect.sizeDelta----{rect.sizeDelta}");
Debug.Log($"rect.rect----{rect.rect}");
Debug.Log($"rect.anchorMax----{rect.anchorMax}");
Debug.Log($"rect.anchorMin----{rect.anchorMin}");

场景结构

  • Parent 对齐方式
    在这里插入图片描述

  • 节点结构
    在这里插入图片描述


二、X轴有拉伸的情况

1. 向上对齐

参数面板

在这里插入图片描述

  • Left: Parent左边(AD)到Child左边(EH)的距离偏移,向右为正,向左为负。
  • Right: Parent右边(BC)到Child右边(FG)的距离偏移,向左为正,向右为负。
  • PosY: CD边到Child中心点(M)的距离偏移,向上为正,向下为负。
  • Height: Child的高度(EH或FG)。
日志输出

在这里插入图片描述

anchoredPosition
anchoredPosition----(0.00, -20.00)

表示原点O(AB的中点)到Child中心点M的偏移。

在这里插入图片描述

offsetMinoffsetMax
offsetMin--(68.00, -70.00)
offsetMax--(-68.00, 30.00)
  • offsetMin: 左下角锚点(A)到Child左下角(B)的偏移。
  • offsetMax: 右上角锚点(D)到Child右上角(C)的偏移。

在这里插入图片描述

sizeDelta
rect.sizeDelta----(-136.00, 100.00)
  • sizeDelta.x: Child宽度相对Parent的宽度,即 sizeDelta.x = -(68 * 2) = -136
  • sizeDelta.y: 因Y轴未被拉伸,等于Child高度 = 100

在这里插入图片描述

rect
rect.rect----(x:-32.00, y:-50.00, width:64.00, height:100.00)

表示Child自身中心(A)到自身左下角(B)的偏移。

在这里插入图片描述

anchorMaxanchorMin
rect.anchorMax----(1.00, 1.00)
rect.anchorMin----(0.00, 1.00)
  • anchorMin: Child左下角锚点坐标。
  • anchorMax: 右上角锚点坐标。

在这里插入图片描述

当锚点发生变化时:

在这里插入图片描述
在这里插入图片描述


2. 居中对齐

参数面板

在这里插入图片描述
在这里插入图片描述

日志输出

在这里插入图片描述


3. 向下对齐

参数面板

在这里插入图片描述
在这里插入图片描述

日志输出

在这里插入图片描述


三、Y轴有拉伸的情况

1. 向左对齐

参数面板

在这里插入图片描述

  • PosX: Parent左边(AD)到Child中心点(M)的水平距离偏移,向右为正,向左为负。
  • Top: Parent上边(DC)到Child上边(HG)的垂直偏移,向下为正,向上为负。
  • Width: Child宽度(HG)。
  • Bottom: Parent下边(AB)到Child下边(EF)的垂直偏移,向上为正,向下为负。

在这里插入图片描述

日志输出

在这里插入图片描述

anchoredPosition
anchoredPosition----(100.00, 30.00)

O为原点(AB的中点),M为Child的中点。

在这里插入图片描述

offsetMinoffsetMax
offsetMin--(68.00, 30.00)
offsetMax--(132.00, 30.00)
  • offsetMin: 左下角锚点(A)到Child左下角(C)的偏移。
  • offsetMax: 右上角锚点(B)到Child右上角(B)的偏移。

在这里插入图片描述

sizeDelta
rect.sizeDelta----(64.00, 0.00)
  • sizeDelta.x: Child宽度 = 64
  • sizeDelta.y: 因X轴未被拉伸,sizeDelta.y = 0

在这里插入图片描述


2. 居中对齐

参数面板

在这里插入图片描述
在这里插入图片描述

日志输出

在这里插入图片描述


3. 向右对齐

参数面板

在这里插入图片描述
在这里插入图片描述


四、XY轴同时拉伸

参数面板

在这里插入图片描述
在这里插入图片描述

  • Left: Parent左边(AD)到Child左边(EH)的距离偏移,向右为正,向左为负。
  • Right: Parent右边(BC)到Child右边(FG)的距离偏移,向左为正,向右为负。
  • Top: Parent上边(DC)到Child上边(HG)的垂直偏移,向下为正,向上为负。
  • Bottom: Parent下边(AB)到Child下边(EF)的垂直偏移,向上为正,向下为负。
日志输出

在这里插入图片描述


五、无拉伸的情况(以左下角对齐为例)

参数面板

在这里插入图片描述
在这里插入图片描述

日志输出

在这里插入图片描述

  • sizeDelta.x: 等于Child宽度
  • sizeDelta.y: 等于Child高度

总结

  • anchoredPosition: 表示Child中心点相对于锚点原点的偏移。
  • offsetMin / offsetMax: 表示Child与锚点之间的偏移量。
  • sizeDelta: 表示Child相对于Parent的尺寸变化。
  • rect: 表示Child自身的矩形区域。
  • anchorMin / anchorMax: 定义Child的锚点位置。

网站公告

今日签到

点亮在社区的每一天
去签到