一:前言
获取UI的长宽,可以使用sizeDelta,但是Unity官方对于sizeDelta是这样解释的:Anchors在同一点的时候,sizeDelta相当于获取长宽,但是Anchors不在同一点时,表示的只是UI真实大小比Anchors矩形大多少
offsetMax = ui矩形右上角坐标 - 锚点矩形右上角坐标
offsetMin = ui矩形左下角坐标 - 锚点矩形左下角坐标
sizeDelta = offsetMax - offsetMin;
=>
sizeDelta = ((ui矩形右上角坐标 - 锚点矩形右上角坐标) - (ui矩形左下角坐标 - 锚点矩形左下角坐标));
上面的公式其实是sizeDelta的真实含义,这就解释了为什么当Anchors在同一个点的时候相当于获取UI元素的宽高,因为当Anchors在同一个点的时候锚点矩形的右上角坐标和左下角坐标是一样的,sizeDelta相当于ui矩形右上角坐标-ui矩形左下角坐标,也就是获取UI元素的宽高
二:使用
为了避免出现与预期不符的效果,通过以下两种方法都可以正确的设置UI大小