RectTranform感悟①(好玩而且好用)

RectTranform感悟①(好玩而且好用)

开篇先贴学习的链接,谢谢这位大神总结的经验,让我受益匪浅:https://www.jianshu.com/p/4592bf809c8b

如这位大神所说,一开始直接接触案例的本人遇到RectTranform面板是很头疼的,这一大堆都是啥,直接回避之,效果达成就可以了。但其实,这里面的各种参数数据,都对整体2D或者说UI层面都有很大影响,对于有UI改变需求的更是需要学习这方面的知识。

1.绝对布局与相对布局
先来个笼统的概念,就是if(AnchorMax != AnchorMin)则这个obj为相对布局,反之为绝对布局。而这两个东西,其实就是锚点的最左下方点坐标,和最右上方点坐标,在(0–1)之间浮动。

第一次看到这东西是一脸懵逼,觉得不知道在说些什么。。

但如果回到项目工程里,其实很简单就能知道它的原理。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
单纯看面板,就可以知道AnchorMax和AnchorMin这两兄弟相等,也就是绝对布局,无论这个Father怎么变换,这Son该多大,就多大。本人又喜欢称为“我是儿子我最屌布局”。

在这里插入图片描述在这里插入图片描述

这里是隔开标记

在这里插入图片描述
另一种情况,我们考虑AnchorMax刚好是(1,1),AnchorMin刚好是(0,0),反正两者不相等,则这个布局为相对布局,面板变成了左上右下四格参数。这四个参数就吊了,表示上下左右到锚点构成的框框的相对距离,而且不可自己变。在我们的变态操作下,就会出现如下画面:

在这里插入图片描述在这里插入图片描述
出现了!“我是儿子我最乖”!

如果left+right>Father.width或者top+buttom>Father.height,就会翻肚。
在这里插入图片描述
2.Pivot
其实就是中间那个小蓝圈,表示这个物体缩放旋转的中心点。

在绝对布局中,面板里的PosX与PosY,就是pivot到锚点的横向距离与纵向距离。U3D甚至还给了提示。

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
3.Offset与DeltaSize
在RectTransform组件中,可读可写Offset>>>offsetMin与offsetMax,offsetMin就是最左下方的点-AnchorMin(其实就是AnchorMin指向最左下方点的向量),offsetMax则为AnchorMax指向最右上方点的向量。

DeltaSize=offsetMax-offsetMin;

而在绝对布局情况下,就会非常快的获得斜对角方向一个向量,控制该向量,直接就可以控制该obj的尺寸。
在这里插入图片描述
而在相对布局情况下,就会获得两个差值:sizeDelta.x值就是锚框的宽度与UI元素的宽度的差值,sizeDelta.y的值就是锚框的的高度与UI元素的高度的差值。
所以这个属性之所以叫做sizeDelta,是因为在锚点情况下其表征的是size(大小),在锚框的情况下其表征的是Delta(差值)————这句话来自原作者。

4.Rect
终于轮到这个烦恼了一个下午的属性了。

其实也非常简单,第一个参数为pivot在自身UI里的x坐标,第二个参数为pivot在自身UI里的y坐标,
需要注意的是,这两个坐标在自身UI里坐标定位时,最右下角为(0,0),最左上角为(-width,-height)
第三个参数就是width,第四个就是height。
看上去很全面,但是很可惜,貌似只可读,所以无法起到修改尺寸的目的。

public Transform trans;
    private void Start()
    {
        Debug.Log(trans.GetComponent<RectTransform>().rect);
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值