Unity新手笔记(1): 矩形组件、锚点、重心点

以前理解不到位,写的不清楚,现在重新理了一下。

每个矩形组件都有锚点和重心点。 

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轴长度)

你可能感兴趣的:(Unity新手笔记(1): 矩形组件、锚点、重心点)