• 欢迎光临~

使用offsetMin和offsetMax来控制UGUI节点的坐标

开发技术 开发技术 2022-11-25 次浏览

首先需要理解anchorMin, anchorMax

anchorMin.x为0.1就是:与parent左边相距10%宽度位置,即图中的left
anchorMin.y为0.2就是:与parent下边相距20%高度的位置,即图中的bottom

anchorMax.x为0.7就是:与parent左边相距70%宽度的位置,即图中的right
anchorMin.y为0.2就是:与parent下边相距20%高度的位置,即图中的top

使用offsetMin和offsetMax来控制UGUI节点的坐标

 

offsetMin, offsetMax

offsetMin.x

使用offsetMin和offsetMax来控制UGUI节点的坐标

offsetMin.y

使用offsetMin和offsetMax来控制UGUI节点的坐标

offsetMax.x

使用offsetMin和offsetMax来控制UGUI节点的坐标

offsetMax.y

使用offsetMin和offsetMax来控制UGUI节点的坐标 

 

根据边距求出offsetMin, offsetMax

1) Image的左边与parent的左边距=图中红色矩形的宽度+offsetMin.x=anchorMin.x * parentWidth + offsetMin.x

offsetMin.x = 左边距 - anchorMin.x * parentWidth

使用offsetMin和offsetMax来控制UGUI节点的坐标

2) Image如果存在缩放,pivot也修改了,则

缩放后Image的左边与parent的左边距=图中两个红色矩形的宽度+offsetMin.x=anchorMin.x * parentWidth + Image缩放前宽度 * pivot.x * (1-scale.x) + offsetMin.x

offsetMin.x = 左边距 - anchorMin.x * parentWidth - Image缩放前宽度 * pivot.x * (1-scale.x)

使用offsetMin和offsetMax来控制UGUI节点的坐标

 

3) 根据下图的关系可以知道:左边距+Image缩放前宽度+offsetMax.x+(1-anchorMax.x)*parentWidth正好是parentWidth

所以,offsetMax.x = parentWidth - 左边距 - Image缩放前宽度 - (1-anchorMax.x)*parentWidth = - 左边距 - Image缩放前宽度 + anchorMax.x * parentWidth

使用offsetMin和offsetMax来控制UGUI节点的坐标

 

4) 上边距+Image缩放前高度+offsetMin.y+anchorMin.y*parentHeight正好是parentHeight

offsetMin.y = parentHeight - 上边距 - Image缩放前高度 - anchorMin.y*parentHeight

使用offsetMin和offsetMax来控制UGUI节点的坐标

 

5) 缩放后Image的上边与parent的上边距=图中两个红色矩形的高度+offsetMax.y=(1 - anchorMax.y) * parentHeight + offsetMax.y + Image缩放前高度 * (1-pivot.y) * (1-scale.y)

offsetMax.y = 上边距 - (1 - anchorMax.y) * parentHeight - Image缩放前高度 * (1-pivot.y) * (1-scale.y)

使用offsetMin和offsetMax来控制UGUI节点的坐标

 

程序员灯塔
转载请注明原文链接:使用offsetMin和offsetMax来控制UGUI节点的坐标
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com