首先需要理解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
offsetMin.x
offsetMin.y
offsetMax.x
offsetMax.y
根据边距求出offsetMin, offsetMax
1) Image的左边与parent的左边距=图中红色矩形的宽度+offsetMin.x=anchorMin.x * parentWidth + offsetMin.x
offsetMin.x = 左边距 - anchorMin.x * parentWidth
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)
3) 根据下图的关系可以知道:左边距+Image缩放前宽度+offsetMax.x+(1-anchorMax.x)*parentWidth正好是parentWidth
所以,offsetMax.x = parentWidth - 左边距 - Image缩放前宽度 - (1-anchorMax.x)*parentWidth = - 左边距 - Image缩放前宽度 + anchorMax.x * parentWidth
4) 上边距+Image缩放前高度+offsetMin.y+anchorMin.y*parentHeight正好是parentHeight
offsetMin.y = parentHeight - 上边距 - Image缩放前高度 - anchorMin.y*parentHeight
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)
标签:offsetMax,缩放,Image,anchorMin,UGUI,offsetMin,parentWidth From: https://www.cnblogs.com/sailJs/p/16856350.html