AnchorPoint(锚点)用于定位对象相对于目标对象在水平或垂直方向的位置。
Transform target即目标对象。
UIRect rect即目标对象上绑定的UIRect组件,可能为null。
Camera targetCam为负责渲染目标对象这一层的Camera。
int absolute为对象相对于目标对象在水平或垂直方向的偏移量。
float relative有三个取值0f、0.5f、1f。
锚点应用于UIRect中,UIRect中有上、下、左、右4个锚点分别用于定位其四条边的位置。
若目标对象无对应的UIRect时,目标对象的位置即其中心点的位置(target.position)。水平方向计算其与leftAnchor的偏移时会先通过对对象UIRect的worldCorners[0](bottom-left corner)和worldCorners[1](top-left corner)进行线性插值计算出UIRect的左边中心点,这两个中心点的x差值即偏移量。
若目标对象有对应的UIRect时,锚点定位对象相对于目标对象水平方向的位置时分为left、center和right对齐,垂直方向则分为top、center和bottom对齐。这种情况下在Unity编辑器中设置好一个锚点后,可以随时在left/center/right和top/center/bottom间切换,NGUI会保持对象的位置并且动态计算出新的对齐方式下对象与目标对象的偏移量。
参考文章:Explanation Local Vs Global Space