Unity ugui 矩形组件、锚点与重心点

发表于2018-10-12
评论0 1.8k浏览
这篇内容给大家整理了下对ugui矩形组件、锚点、重心点的理解,帮助那些对这个还不是很熟悉的朋友,其中每个矩形组件都有锚点和重心点。

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轴长度)
  • 来自:https://www.jianshu.com/p/43d9187e6df8



如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签:

0个评论