UGUI Canvas为Overlay模式锚点分散的情况下的anchoredPosition计算

一直有疑问,在Canvas为Overlay模式锚点分散的情况下的anchoredPosition是怎么计算的
根据资料(其实是DeepSeek),有这么一个公式

参考点X = anchorMin.X + (anchorMax.X - anchorMin.X) × Pivot.X
参考点Y = anchorMin.Y + (anchorMax.Y - anchorMin.Y) × Pivot.Y
这个参考点是一个比例系数,将作为AnchoredPosition的坐标系原点,且是基于父物体的长宽来计算

接下来进行验证
Canvas的分辨率是1125x2436
在这里插入图片描述
在这里插入图片描述
test的父物体是Canvas
在这里插入图片描述
此时Pivot是(1,0.5)
在这里插入图片描述
此时的anchoredPosition是(0, 0)

代入上面的公式计算
参考点X = 0 + (1 - 0) * 1 = 1
参考点Y = 0 + (1 - 0) * 0.5 = 0.5
即参考点 = (1, 0.5)
再代入Canvas的长宽计算,即1125 * 1=1125,2436 * 0.5 = 1218,即对于父物体,以父物体的左下角为原点,计算出来的参考点(1125, 1218)在这个位置
在这里插入图片描述
再看元素的Left和Top值
在这里插入图片描述
在这里插入图片描述
Image的边长是100,那么1025 + 100 = 1125,1168 + 50 = 1218

刚好,Pivot也在这个位置,根据anchoredPosition的定义描述,是从Anchor到Pivot的向量,而此时锚点是四处分散的,而此时anchoredPosition也正好是(0, 0),说明上面的公式计算出来的anchoredPosition原点是正确的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值