UGUI系列——RectTransform之UI宽高和SizeDelta

UGUI系列其他博文,可通过导航帖查看

前言

上一篇博文简单的介绍了一些锚点及轴心的一些概念,及Position的在锚点不同状态下的显示情况,下面我们继续介绍RectTransform的属性

UI的宽高是我们经常需要获取的属性,它分两种情况

(1)锚点集中在一起

这种情况下,宽高是直接显示出来的
UGUI系列——RectTransform之UI宽高和SizeDelta_第1张图片
在debug模式下,可以直接看到SizeDelta,它这个时候代表的就是rect的宽高
在这里插入图片描述
这种情况下,我们在代码里,就有两种方式获取到当前UI的宽高

RectTransform rect = transform.GetComponent();

1)通过sizeDelta
rect.sizeDelta

2)通过rect
rect.rect.size
它还有两个分别表示宽高的属性也可以使用
rect.rect.height
rect.rect.width

当前情况下,它们的输出值是一样的
UGUI系列——RectTransform之UI宽高和SizeDelta_第2张图片

(2)锚点分开

例如像这样
UGUI系列——RectTransform之UI宽高和SizeDelta_第3张图片
这个时候, 在原本显示宽高的地方,显示的属性就会发生变化

以Left为例,表示的是rect的左边到锚点形成的图形的左边的距离
UGUI系列——RectTransform之UI宽高和SizeDelta_第4张图片
这个时候
在这里插入图片描述
SizeDelta的x分量,表示的left和right的值的和
SizeDelta的y分量,表示的top和bottom的值的和

所以这个时候,你要在代码中获取UI的宽高尺寸,就需要用Rect属性,而不是SizeDelta
UGUI系列——RectTransform之UI宽高和SizeDelta_第5张图片

我会在我的公众号上推送新的博文,也可以帮大家解答问题
微信公众号 Andy and Unity 搜索名称或扫描二维码
在这里插入图片描述
希望我们能共同成长,共同进步

你可能感兴趣的:(UGUI,Unity,UnityGUI应用)