recttransform
转载自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.相对布局
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中的width
和height
值来改变UI元素的大小。
rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 100);
rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 100);
recttransform的更多相关文章
- 修改RectTransform的宽度和高度
rectTransform.sizeDelta = new Vector2( width, height);
- Unity UGUI RectTransform图解
UGUI RectTransform.Unity RectTransform详解 The first:look look API. http://docs.unity3d.com/ScriptRefe ...
- 修改RectTransform的值
用uGUI的时候.经常需要动态改变RectTransform的值,
- U3D UGUI学习3 - RectTransform
总的来说整合了NGUI很多零散功能,比如NGUI2.X处理拉伸要额外套脚本,NGUI3.X开始引入新的锚点.再加上依赖BoxCollider使得整个HUD显示非常乱 而UGUI很清晰明了,你也能看清楚 ...
- 具体分析UGUI中RectTransform
一:RectTransform 组件 1.Transform 组件是所有的游戏物体必备的一个组件,且不可删除,不可隐藏.就算是一个空物体,也是具备 Transform 组件的. Unity3D4.6 ...
- 关于Unity中RectTransform和Transform
以前一直以为在Inspector面板上的是Transform,后来才发现原来2D是RectTransform,3D是Transform 3D面板上显示的是位置坐标组件Transform,2D面板上显示 ...
- Unity UGUI 的RectTransform参数的设置
1.改变RectTransform的top GetComponent<RectTransform>().offsetMax = new Vector2(GetComponent<Re ...
- UGUI RectTransform
RectTransform解析 当 Anchor 在同一点时,显示的是物体的座标与大小Pos X.Pos Y.Width.Height ,当 Anchor 不在同一点时(此时会形成矩形),显示的会是 ...
- Unity3D — — UGUI之RectTransform
Mask.GetComponent<RectTransform>().anchoredPosition(子物体) = hotKey_image.rectTransform.anchored ...
- Unity的界面排版: RectTransform
看Unity3D文档像看国内教课书一样,一些概念,不懂的时候看还是不懂,明白了以后再看,好像也没有说错.好几个做Unity3D的朋友跟我吐槽过U3D的文档质量,相比Apple贴心的技术文档相去甚远. ...
随机推荐
- Vue项目运行或打包时,频繁内存溢出情况CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
前端使用基于vue的Nuxt框架,但是随着项目功能增多,项目变大,频繁出现此种情况,原因是项目太大,导致内存溢出,排除代码问题外,可参照以下方式解决 解决方案 1.全局安装increase-memor ...
- 关于两个DIV之间的空白字符
首先!!!!这个问题应该是去面试前端会经常问到的问题!!! 如,下面这个例子: <!DOCTYPE html> <html lang="zh-CN"> &l ...
- CSS和层叠
##常见的CSS属性## color:red 设置元素内容的颜色 <br>text-align:center 设置文字的对齐方式(例:centeer 居中) <br>fon ...
- 让configure和cmake编译时支持调试选项
在Linux先编译软件基本都是采用configure文件生成makefile,或者,cmake生成makefile文件两种方式.它们生成的makefile文件,一般默认不支持-g调试选项.但我们使用这 ...
- 如何将MultipartFile转换成based4
public String test(MultipartFile file) throws Exception{ BASE64Encoder base64Encoder =new BASE64Enco ...
- c语言中的数据变量类型,大小
C中有哪些数据类型? 回答: 有两种类型的数据类型,用户定义和预定义.预定义的数据类型是int,char,float,double等,用户使用标签struct,union或enum创建用户定义的数据类 ...
- hdu1005-Number Sequence-(循环节)
题意:已知f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7,给出A,B,n,求f(n) 题解:n巨大,循环肯定超时,在模7的 ...
- 2016 ACM/ICPC亚洲区青岛站
A B C D E F G H I J K L M O O O O $\varnothing$ $\varnothing$ $\varnothing$ $\varnothing$ ...
- WebStorm取消默认style样式折叠
WebStorm取消默认style样式折叠: File--->Settings打开一个窗口 Edit--->CodeFolding 把HTML style attribute的前面的钩去掉 ...
- 请简要描述margin重复问题,及解决方式
两个相邻的盒子垂直方向上的margin会发生重叠,取较大的那个值,而不是相加. 解决: 父级设置padding代替margin 父级设置overflow:hidden 当前元素设置透明的边框 使用绝对 ...