以前理解不到位,写的不清楚,现在重新理了一下。
每个矩形组件都有锚点和重心点。
1.锚点
对象拥有锚点,但是锚点的位置是对于父对象而言的,如下图,父对象是画布,子对象是图片。举两个栗子就能看清这两者的关系。
锚框是黑色图片的2.重心点
不同于锚点,重心点的位置是相对于对象本身而言的,举三个栗子。
3.RectTransform( 矩形组件 )的面板参数
1.当四个小雪花在一起 参数板面如下
width, height :显而易见是矩形的长宽
Pos X , Pos Y:以锚点为原点,向右、上为正方向的坐标系里,重心点的位置 ,举个两个栗子:
2.当四个小雪花不在一起 参数版面变化很大 有一个概念:锚框
锚框:四个小雪花不在一起,会组成一个锚框。
Top bottom left right = 矩形组件四边 相对于 锚框四边 的距离
举一个栗子:
了解这些,就能知道拉伸父对象时子对象的变化情况了。
RectTransform版面的参数设置后是固定值,相当于长度不变的锁链,如果父对象四边位置变化,因为这些锁链长度不变,所以子对象的四边位置肯定会被锁链拉伸,就跟拉棉花糖一样,这就可以用来做图片自适应拉伸的效果。
4.RectTransform是如何绘制
猜测:RectTransform类的rect属性决定了RectTransform的绘制,以重心点为原点,向左和向下确定子对象矩形边的位置
输出测试代码
RectTransform brect = b.GetComponent < Transform >() as RectTransform;
Debug.Log("绿图的RectTransform.rect.position:" +brect.rect.position.x+ "," +brect.rect.position.y);
5.RectTransform类里的几个属性
1. anchoredPosition属性
①小雪花在一起时,以锚点为原点,求重心点的相对坐标
②小雪花不在一起时,以右上角的小锚点为原点,求重心点的相对坐标
2. offsetMin属性 以左下角的小锚点为原点 求矩形组件左下角的相对坐标
3. offsetMax属性以右上角的小锚点为原点 求矩形组件右上角的相对坐标
4. sizeDelta属性 (尺寸变化量)
①小雪花在一起时,就是矩形组件的长宽;
②小雪花不在一起时,等于矩形长宽相对于锚框长宽的变化量:
(矩形X轴长度-锚框X轴长度,矩形Y轴长度-锚框Y轴长度)
网友评论