相信很多刚接触UGUI的开发者,对于这套系统中RectTransform里的position,anchor,pivot都或多或少有些不熟悉,不知道这些是干嘛用的,为此,本篇文章就给大家介绍下这几个概念,不过主要还是会以Anchor和Pivot为主,position会带过介绍。

1、Pivot轴心

旋转、大小和缩放修改发生在主轴Pivot点周围,因此Pivot的位置会影响旋转、调整大小或缩放的结果。当工具栏Pivot/Center按钮设置为Pivot模式时,可以在场景视图中移动矩形变换的Pivot小圆圈。

如图:旋转操作为绕着这个点旋转。

image

image

注:

Pivot是相对于自身的,(0,0)为自己左下角,(1,1)为自己右上角。(可以把这个UI看成这个点)

2、Anchors锚点

如果一个RectTransform的父物体也是RectTransform,那么子RectTransform可以以各种方式锚定到父RectTransform。

例如,子节点可以锚定在父节点的中心或其中一个角上。

image

锚定也允许孩子与父母的宽度或高度一起伸展。矩形的每个角都有一个固定的锚点偏移量,即矩形的左上角有一个固定的锚点偏移量,等等。这样,矩形的不同角就可以固定在父矩形的不同点上。

如:

image

锚点的位置以父矩形宽度和高度的分数(或百分比)来定义。

0.0(0%)对应于左侧或底部,0.5(50%)对应于中部,1.0(100%)对应于右侧或顶部。

但锚点并不局限于两侧和中部;它们可以锚定到父矩形中的任何点上。

Min(X,Y)为左下角的点在父物体上的位置,Max(X,Y)为右上角点在父物体上的位置。

您可以分别拖动每个锚,或者如果它们在一起,您可以通过单击它们之间中间的位置并拖动将它们拖到一起。如果在拖动锚点时按住Shift键,矩形的相应角将与锚点一起移动。

锚柄的一个有用的特性是,它们会自动吸附到兄弟矩形的锚上,以实现精确定位。

3、Anchor presets锚点预设

在Inspector中,可以在Rect Transform组件的左上角找到锚预置按钮。单击该按钮将弹出锚预置下拉菜单。从这里您可以快速地从一些最常见的锚定选项中进行选择。您可以将UI元素锚定到父元素的侧面或中间,或者与父元素大小一起拉伸。水平和垂直锚定是独立的。

image

锚预置按钮显示当前选择的预置选项(如果有的话)。如果将水平轴或垂直轴上的锚设置为与任何预设位置不同的位置,则会显示自定义选项。

Anchor Min对应场景视图中左下方的Anchor handle, Anchor Max对应右上方的handle。

矩形的position字段根据锚顶点是否在一起(产生固定的宽度和高度)或是否分开(导致矩形与父矩形一起拉伸)而不同。

方式1:当所有的锚柄在一起时,显示的字段是Pos X、Pos Y、宽度和高度。Pos X和Pos Y的值表示pivot相对于锚点的位置。

image

方式2:当锚被分开时,字段可以部分或完全改变为左、右、上、下。这些字段定义锚定义的矩形内的填充。如果锚水平分开,则使用左字段和右字段,如果锚垂直分开,则使用顶部和底部字段。

image

image

注意,在anchor或pivot字段中更改值通常会反向调整position值,以使矩形保持原位。在不需要这样做的情况下,通过单击检查器中的R按钮启用原始编辑模式。这使得anchor和pivot值能够在不改变任何其他值的情况下被改变。这可能会导致矩形在视觉上移动或调整大小,因为它的位置和大小取决于anchor和pivot值。

看下图预设布局,可以注意到:布局分为左侧、上侧和右下。

image

左和上只是方位标记,用啥要选择右下角部分;

右下部分的左上9个是一个点,所有锚柄在一起,大小不会受父物体影响,父物体大小变化子物体pivot到锚点位置保持不变; 如上面方式1

其他为2个点,最右下角的为四个点,大小会受父物体影响;如上面方式2

注意区分:

Pivot是相对于自身的,(0,0)为自己左下角,(1,1)为自己右上角。(可以把这个UI看成这个点)

Anchor为相对于父物体的,(0,0)为父物体左下角,(1,1)为父物体右上角。

4、Blue Print Mode(蓝图模式) 、 Raw Edit Mode(原始编辑模式)

Blue Print Mode (蓝图模式)

勾选后,就算UI被调整Rotation或Scale参数,UI的矩形框也不变。

image

image

Raw Edit Mode (原始编辑模式)

在 Inspector 中调整 Pivot 和 Anchor 时,物体会维持目前的位置与大小(Inspector 中数值部分),请注意数值部分:

Inspector 中调整 Pivot:

image

Inspector 中调整 Anchor:

image

5、从脚本端操作布局

从脚本端操作uGUI时,编辑符号和RectTransform字段不匹配有点复杂。没有诸如Pos X之类的参数,并且宽度/高度也不存在。

在这种情况下,将Inspector更改为Debug模式并公开RectTransform的隐藏参数。通过这个我们可以看到参数通常指向的内容。

image

image

pivot position_UGUI中Anchor和Pivot详解相关推荐

  1. html5代码转换为视频,HTML5中的视频代码详解

    摘要 腾兴网为您分享:HTML5中的视频代码详解,智学网,云闪付,易推广,小红书等软件知识,以及360win10,流量魔盒,fitbit,上港商城,安卓2.3.7,全民惠,五年级下册英语单词表图片,t ...

  2. VMware虚拟机文件夹中各文件作用详解

    VMware虚拟机文件夹中各文件作用详解 虚拟机的文件管理由VMware Workstation来执行. 一个虚拟机一般以一系列文件的形式储存在宿主机中, 这些文件一般在由workstation为虚拟 ...

  3. C++中substr()函数用法详解

    C++中substr()函数用法详解 原型: string substr (size_t pos = 0, size_t len = npos) const; 返回一个新构造的string对象,其值初 ...

  4. php中 继承中的概念,JavaScript_JavaScript中的继承方式详解,js继承的概念 js里常用的如下 - phpStudy...

    JavaScript中的继承方式详解 js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承) 类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于 ...

  5. Java中的static关键字详解

    ** Java中的static关键字详解 ** 在一个类中定义一个方法为static,即静态的,那就是说无需本类的对象就可以调用此方法.调用一个静态方法就是 "类名.方法名" ,静 ...

  6. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

  7. java中匿名内部类详解_java 中匿名内部类的实例详解

    搜索热词 java 中匿名内部类的实例详解 原来的面貌: class TT extends Test{ void show() { System.out.println(s+"~~~哈哈&q ...

  8. java中的进制输出转换_Java I/O : Java中的进制详解

    作者:李强强 上一篇,泥瓦匠基础地讲了下Java I/O : Bit Operation 位运算.这一讲,泥瓦匠带你走进Java中的进制详解. 一.引子 在Java世界里,99%的工作都是处理这高层. ...

  9. PHP开发中常见的安全问题详解和解决方法

    PHP开发中常见的安全问题详解和解决方法 参考文章: (1)PHP开发中常见的安全问题详解和解决方法 (2)https://www.cnblogs.com/walblog/articles/83313 ...

最新文章

  1. Thrift Direct Memory OOM问题解决方法
  2. pandas把dataframe的数据列转化为索引列实战:单列转化为索引、多列转化为复合索引
  3. swift 动态设置UILabel的高度
  4. python的mysql模块_python使用MySQLdb模块连接MySQL
  5. 深入V8引擎-Time模块介绍
  6. 如何查看 .NET Core 3.1 源代码
  7. mysql5.7修改root密码_七小服公开课EMC isilon修改丢失的root密码
  8. 腾讯云与阿里云竞争激烈:销售团队积极争取每一笔交易
  9. ief12执行一次js才有效_陈列到底多久调一次才有效?
  10. java在线支付---09,10,11,12_在线支付_分析易宝支付网关的应答协议与处理代码,完成用于处理支付响应的Servlet的初步编写和调试,完成处理支付网关响应结果的Servlet,支付实现
  11. 云计算产生的新生事物一云桌
  12. jquery validation用法
  13. 16 ValidationSummary
  14. smartbi问题_SAP BO的五大尴尬,Smartbi就是HANA用户的“菜”
  15. synchronized实现原理之---Moniter的实现原理
  16. 打印大的打印机打印不出来
  17. 装机不求人,小白装机注意事项
  18. NAXX Demo3_JSQ_03
  19. WWDC15 iOS游戏开发3个新框架全解
  20. 120W快充!Redmi Note 11系列1199元起

热门文章

  1. Trustzone/TEE学习方法和资料汇总
  2. Z世代下的鞋服数字化转型该如何推进?-容易网
  3. 【应用】AP5153 线性降压恒流 PWM调光LED照明驱动 高压低压
  4. Python学习日记(二十四) 继承
  5. For Me ...
  6. 如何防范p2p终结者的限速
  7. c语言编程简单的小游戏读心术,无聊的时候写的读心术小程序
  8. 视频教程-反勒索编程实战篇-病毒木马
  9. java vector pair_C++ vector中使用pair 及 pair的基本用法总结(转)
  10. SAP HANA内存计算介绍