转载自https://www.jianshu.com/p/4592bf809c8b

1.Anchor:子物体和父物体联系的桥梁,Anchors是由两个点确定的,他们就是AnchorMin以及AnchorMax,之所以anchorMax和anchorMin的值是小数,是因为其表征的是该点所在位置占父物体大小的比例,也就是图中黑色画线部分占灰色物体总长度和总宽度的比例

  • 当anchorMax与anchorMin相等时,Anchor呈现为一个点,我称之为锚点
  • 当anchorMax与anchorMin不相等时,Anchor呈现为一个框,我称之为锚框(即示意图中的情况)

2.绝对布局

所谓的绝对布局,就是出现锚点的情况,此时的recttransform面板中的属性变成了

在绝对布局的情况下无论分辨率是多少,父物体多大,该UI元素的大小是恒定的

而剩下的PosX,PosY,PosZ表征的就是Pivot (第三部分有关于Pivot的讲解) 到锚点的距离

3.相对布局

所谓相对布局,就是出现锚框的情况。在这种情况下UI元素的四个角,距离四个对应的锚点的距离是不变的,在这种情况下RectTransform的属性又变为了Left,Top,Right,Bottom,PosZ,其中的PosZ表征的是该元素到父物体在Z轴上的偏移,利用这个值可以调整UI元素的显示顺序,不过我用的不多,这里不作太多讨论。剩下的四个值应该很好理解了,就是UI元素的每一条边距离父物体的每一条边的距离。

4.pivot

Pivot中心点,就是该UI元素旋转缩放的中心点

5.Offset

OffsetMax的值值就是UI元素的右上角的坐标,减去AnchorMax的值,得到一个从AnchorMax指向元素右上角的向量(vector2类型)

6.sizeDelta

在锚点情况下,offsetMax和Min的起点相同,根据向量相减的三角形法则(不记得是不是这样说得了哈哈哈),可以得到一个新的向量,这个新的向量的X和Y的大小正好UI元素的宽和高相等,所以在这个时候去设置sizeDelta的值,可以直接调整UI元素的大小

在锚框的情况下,offstMax减去Min,得到的将不再是UI元素的大小,而是一个新的奇怪的向量,这个向量代表的物理意义是,sizeDelta.x值就是锚框的宽度与UI元素的宽度的差值,sizeDelta.y的值就是锚框的的高度与UI元素的高度的差值

7.rect

只读,可以获取UI大小

8.anchoredPosition

通过直接设置anchoredPosition的值可以改变UI元素的位置,在使用锚点的情况下,anchoredPosition表征的是元素Pivot到Anchor的距离在使用锚框的情况下,anchoredPosition表征的是元素Pivot到锚框中心点的距离

9.SetSizeWithCurrentAnchors(Animations.Axis axis, float size)

这个方法无论在绝对布局还是相对布局的情况下,都可以通过直接设置rect中的widthheight值来改变UI元素的大小。

rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 100);
rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 100);

recttransform的更多相关文章

  1. 修改RectTransform的宽度和高度

    rectTransform.sizeDelta = new Vector2( width, height);

  2. Unity UGUI RectTransform图解

    UGUI RectTransform.Unity RectTransform详解 The first:look look API. http://docs.unity3d.com/ScriptRefe ...

  3. 修改RectTransform的值

    用uGUI的时候.经常需要动态改变RectTransform的值,

  4. U3D UGUI学习3 - RectTransform

    总的来说整合了NGUI很多零散功能,比如NGUI2.X处理拉伸要额外套脚本,NGUI3.X开始引入新的锚点.再加上依赖BoxCollider使得整个HUD显示非常乱 而UGUI很清晰明了,你也能看清楚 ...

  5. 具体分析UGUI中RectTransform

    一:RectTransform 组件 1.Transform 组件是所有的游戏物体必备的一个组件,且不可删除,不可隐藏.就算是一个空物体,也是具备 Transform 组件的. Unity3D4.6 ...

  6. 关于Unity中RectTransform和Transform

    以前一直以为在Inspector面板上的是Transform,后来才发现原来2D是RectTransform,3D是Transform 3D面板上显示的是位置坐标组件Transform,2D面板上显示 ...

  7. Unity UGUI 的RectTransform参数的设置

    1.改变RectTransform的top GetComponent<RectTransform>().offsetMax = new Vector2(GetComponent<Re ...

  8. UGUI RectTransform

    RectTransform解析 当 Anchor 在同一点时,显示的是物体的座标与大小Pos X.Pos Y.Width.Height ,当 Anchor 不在同一点时(此时会形成矩形),显示的会是 ...

  9. Unity3D — — UGUI之RectTransform

    Mask.GetComponent<RectTransform>().anchoredPosition(子物体) = hotKey_image.rectTransform.anchored ...

  10. Unity的界面排版: RectTransform

    看Unity3D文档像看国内教课书一样,一些概念,不懂的时候看还是不懂,明白了以后再看,好像也没有说错.好几个做Unity3D的朋友跟我吐槽过U3D的文档质量,相比Apple贴心的技术文档相去甚远. ...

随机推荐

  1. 微信小程序页面调用自定义组件内的事件

    微信小程序页面调用自定义组件内的事件 page page.json { "usingComponents": { "my-component": ". ...

  2. 高德地图的JSAPI学习笔记【一】

    高德地图的项目要做 学习笔记记录下来 一.注册账号并申请Key  二.准备页面写好 1.在页面添加 JS API 的入口脚本标签,并将其中「您申请的key值」替换为您刚刚申请的 key: <sc ...

  3. 【转】Git使用教程之基础篇

    Git使用教程 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是 ...

  4. Myapp

    一.github地址:https://github.com/jianghailing/rjgcsecondwork 二.PSP表格: PSP2.1 Personal Software Process ...

  5. Git的下载安装

    下载地址:https://git-scm.com/download/win 命令: git add ...  ---将资源放到缓存区域 git commit  -m "提交说明"  ...

  6. Spark实现分组TopN

    一.概述 在许多数据中,都存在类别的数据,在一些功能中需要根据类别分别获取前几或后几的数据,用于数据可视化或异常数据预警.在这种情况下,实现分组TopN就显得非常重要了,因此,使用了Spark聚合函数 ...

  7. 集合(set)

    '''set是一个无序(不支持索引和切片)而且不重复的集合,有些类似于数学中的集合,也可以求交集,求并集等,''' s1={1,2,3,1} #定义一个set s1 如果s1={}为空则默认定义一个字 ...

  8. k8s dashboard 解决secret自建证书导致浏览器访问限制

    解决参考: https://www.jianshu.com/p/c6d560d12d50   熟悉dashboard yaml文件所创建的资源 wget https://raw.githubuserc ...

  9. CentOS6.10下yum安装MySQL5.7

    MySQL官网的Yum仓库快速指南:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 检查是否安装有MySQL数据库 rpm -qa | ...

  10. nginx 其他配置语法

    1.nginx 缓冲区配置 2.跳转重定向 3.头信息 4.超时 location / { proxy_pass http://127.0.0.1:8080;(代理跳转url) proxy_redir ...