Unity UI坐标说明

测试代码如下

csharp 复制代码
 	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.向上对齐

1.参数面板

Left 表示Parent左边(AD)到Child左边(EH)的距离偏移,向右为正,向左为负

Right 表示Parent右边(BC)到Child右边(FG)的距离偏移,向左为正,向右为负

PosY表示CD边到Child的中心点(M)的距离偏移,向上为正,向下为负

Height表示Child的高度,EH或者FG的边长

日志输出如下

2 anchoredPosition

csharp 复制代码
anchoredPosition----(0.00, -20.00)

anchoredPosition表原点O到Child中心点M的偏移

原点O为AB的中点

3 offsetMin and offsetMax

csharp 复制代码
offsetMin--(68.00, -70.00)
offsetMax--(-68.00, 30.00)

offsetMin表示左下角锚点(A)到Child左下角(B)的偏移

offsetMin表示右上角锚点(D)到Child右上角(C)的偏移

4 sizeDelta

csharp 复制代码
rect.sizeDelta----(-136.00, 100.00)

sizeDelta.x 为 Child的宽度相对Parent的宽度 ,即AB + sizeDelta.x = CD,所以sizeDelta.x = -(68x2) = -136

因为对齐方式Y轴没有被拉伸,所以sizeDelta.y = Child的Height = 100;

5 rect

csharp 复制代码
rect.rect----(x:-32.00, y:-50.00, width:64.00, height:100.00)

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

6 anchorMax and anchorMin

csharp 复制代码
rect.anchorMax----(1.00, 1.00)
rect.anchorMin----(0.00, 1.00)

anchorMin代表Child左下角锚点坐标 ,anchorMax代表右上角锚点坐标

当如下情况时

其他拉伸的方式同理,只是锚点不同

2、居中对齐

1.参数面板

日志输出如下

其他参数原理同理

3、向下对齐

1.参数面板


输出日志

其他参数同理

二、Y轴有拉伸的情况

1.向左对齐

1.参数面板

  • PosX 表示Parent的左边(AD)到Child中心点(M)的水平距离偏移,向右为正,向左为负

  • Top表示Parent的上边(DC)到Child的上边(HG)到的垂直偏移,向下为正向上为负

  • Width 表示Child的宽度(HG)的长度

  • Bottom表示Parent的下边(AB)Child的下边(EF)的垂直偏移,向上为正向下为负

日志如下

2 anchoredPosition

csharp 复制代码
anchoredPosition----(100.00, 30.00)

其中O为原点,是AB的中点,M为Child的中点

3 offsetMin and offsetMax

csharp 复制代码
offsetMin--(68.00, 30.00)
offsetMax--(132.00, 30.00)

offsetMin表示左下角锚点(A)到Child左下角(C)的偏移

offsetMin表示右上角锚点(B)到Child右上角(B)的偏移

4 sizeDelta

csharp 复制代码
rect.sizeDelta----(64.00, 0.00)

因为对齐方式X轴没有被拉伸,所以sizeDelta.x = Child的width = 64;

sizeDelta.y 为 Child的高度相对Parent的高度 ,即AB + sizeDelta.y = CE,所以sizeDelta.y = 0;

5 rect

csharp 复制代码
rect.rect----(x:-32.00, y:-50.00, width:64.00, height:100.00)

和之前的对齐方式相同,没有变化

6 anchorMax and anchorMin

csharp 复制代码
rect.anchorMax----(1.00, 1.00)
rect.anchorMin----(0.00, 1.00)

和之前的对齐方式相同,没有变化

2.居中对齐

1.参数面板


输出日志

其他参数同理

3、向右对齐

1.参数面板


三、XY轴有拉伸的情况

1.参数面板


Left 表示Parent左边(AD)到Child左边(EH)的距离偏移,向右为正,向左为负

Right 表示Parent右边(BC)到Child右边(FG)的距离偏移,向左为正,向右为负

Top表示Parent的上边(DC)到Child的上边(HG)到的垂直偏移,向下为正向上为负

Bottom表示Parent的下边(AB)Child的下边(EF)的垂直偏移,向上为正向下为负

日志如下

其他参数和之前的对齐方式同理

四、无拉伸的情况

以左下角对齐方式为例

1.参数面板


输出日志

无拉伸的情况下

sizeDelta.x = width

sizeDelta.y = height

其他参数原理和之前的对齐方式相同

相关推荐
CoderIsArt12 小时前
C#中UI 线程与 Dispatcher
开发语言·ui·c#
TomEval1 天前
【Web UI 自动化】05 - KDT 模式原理与实现
前端·ui·自动化
简单Janeee1 天前
[Vue 3 从零到上线]-第九篇:更美更强——引入 UI 库与网络请求 (Axios)
网络·vue.js·ui
中国软件测试质量协会2 天前
奇林测试平台(kylinTOP)UI自动化测试能力深度解析
ui
greasyfork2 天前
Mac Sketch v2026.3 矢量图设计工具
macos·ui·sketch
zhchyun20082 天前
# 【Unity UI 进阶】仿 Element UI 打造企业级 Unity UI 组件库(06)
ui·unity·游戏引擎
中国软件测试质量协会2 天前
国产UI自动化测试工具的“技术代际“演进与自主可控之路
测试工具·ui·自动化
深念Y2 天前
NativeScript 移动端开发踩坑记录
前端·ui·vue·安卓·移动端·native·原生
晴天162 天前
从生成式 UI 到 Agent 驱动界面-Day32
ui
淼澄研学2 天前
Photoshop集成Firefly Image 3模型解析与API实操指南
ui·photoshop