Unity的RecTransform布局计算

RecTransform的布局计算方式容易让人混乱,因为参数很多,而且分情况。这篇文章讲得很好了,但稍微有点乱,我就想总结精简下。

锚点不重合时

锚点就是界面里的anchors,两个点Min一个,Max一个。当它们不重合时,Min作左下角,Max作右上角,它们构成一个矩形框区域。

锚点

然后面板这里就变成修改4边的距离了,Left就是当前RectTransform左边和锚点构成矩形框作边界的距离,其他属性分别是其他3个边的距离,这样当前RectTransform就确定了。

Unity的RecTransform布局计算_第1张图片
边界距离

锚点重合时

Unity的RecTransform布局计算_第2张图片
锚点重合时面板

width/Height就确定了当前RectTransform大小,而位置就是根据Pivot来确定。面板上的Pivot确定的是Pivot在当前RectTransform中的位置,锚点的位置,加上PosX和Pos Y就可以确定Pivot的在父控件的位置,两者是同一个位置,就把当前RectTransform确定下来了。

其实在这里,Pivot实际是锚点的作用,可以想象钉在墙上的一张纸,Pivot就是那个钉子。

关于两种计算方式的思考

我觉得两种最大的区别是后者的宽高是固定的,也就是如果你希望你的子控件的大小固定,它不跟随父视图大小变化而变化,那么就用第二种,比如技能按键。而如果你的子控件和父控件是边界距离固定,那么就用第一种,比如占整个屏幕的商品列表。

你可能感兴趣的:(Unity的RecTransform布局计算)