基础组件RectTransform

RectTransform组件是Unity编辑器下UGUI系统基本组件,深入理解RectTransform组件是用好UGUI的基本前提。

首先我们知道UI呢首先要就有坐标属性,这样我们才能确定它的位置。其次UI还要控制大小,是一个二维坐标在控制大小。这样一个UI元素才能在屏幕上显示。那么我们原先的组件transform就不能满足条件了,RectTransform就应运而生了。它继承自Transform组件,配合Canvas的使用。

先罗列一下RectTransform的属性:position,localPosition,rotation,localRotation,EulerAngles,LocalEulerAngles,scale,localScale,anchorPosition,anchorMin,anchorMax,offsetMax,offsetMin,pivot。

position:UI元素在世界中的位置。

localposition:UI元素相对于父物体的位置。

pivot:是物体的中心。

anchors:就是子物体在父物体中的替代,一个影射。

anchors这里就不是很好理解了,这里引用一个博主老大的例子,很形象,作为新人多理解几遍:一个小面包放在一个大面包(小面包也是可以无限膨胀或者压缩的)中的体积。小面包的大小就是Anchors就是小面包的大小。大面包的挤压或者拉升就会影响小面包的大小(想想小面包如果有空间也会有满满的膨胀的可能)。想象一下两个面包,一个小的面包在打得面包中间,其中Anchors就代表着这个小面包在大面包中的对象。当Anchors最小的时候,就可以想象成小面包已经被无限压缩了,所以你再怎么拉或者压都不会对小面包大小产生影响,当小面包与大面包是一样大的时候(就是说小面包和大面包中间就隔了一层忽略不计的面包皮)你就会发现无论压或者拉都会产生很大的影响。

有人会说明明显示出来的UI才是子物体,这种理解是错误的,你应该吧UI当成一张图片贴在了anchors里面,anchors里面又有一个可变大小和位置的特写部分(特写部分就是实际显示的UI)

pivot:作为UI显示的中心点位置,这个中心点是可调的,值为0-1,形式为(x,y)。

anchorMin:左下角点

anchorMax:右上角点

offsetMin:anchorMin的到图片右下角偏移向量

offsetMax:anchorMax的到图片左下角偏移向量

sizeDelta:offsetMax-offsetMin(sizeDelta可正可负,自己动手试一下,多试几种anchor模式这样才能直观理解,sizeDelta的x,y绝对值分别代表了UI元素的大小)。这个值挺好玩的,如果四个锚点都在一起,就是宽度和高度,如果水平的锚点分开了,y还是高度,x变成了-(left+right).如果垂直的锚点分开了,x还是宽度,y变成了-(top+bottom)。

这里最后再总结一下:pivot只是显示UI的中心点它的变化所影响的只是UI的位置和旋转中心。对left,Bottom,right,Top这四个数值没有影响,这四个数值在确认锚框存在且同为一种模式条件下,只有UI元素的左下角点和右上角点是它们四个值的影响条件。

另外值得一提的一点是我们的localposition和这四个值是不存在冲突的可以同时使用,但是一次只能用一种,在编辑器中Unity只是为我们直观的显示了最适合的模式。我们通过代码调节要根据情况选择合适的属性来调节(localposition或者offsetMin,offsetMax)。

时间: 2024-08-06 05:24:26

基础组件RectTransform的相关文章

3. playbook基础组件

Playbook playbook是由一个或多个“play”组成的列表.play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色. 从根本上来讲,所谓task无非是调用ansible的一个module.将多个play组织在一个playbook中,即可以让它们联同起来按事先编排的机制同唱一台大戏. playbook基础组件 Hosts和Users playbook中的每一个play的目的都是为了让某个或某些主机以某个指定的用户身份执行任务. hosts用于指

Android 基础组件

基础组件 所有的控件都可以在java代码中创建出来,并且大部分的属性都对应set和get方法,比如 View view = new View(Context context)  context是上下文,是Activity父类,一般传入当前Activity 1.TextView text 文本 setText() getText() textColor文本颜色 #FFFFFF setTextColor(Color.Blue) getTextColor() textSize文本大小   sp set

数据库写库基础组件设计思想与实现

码农一定会遇到写库的繁琐操作,字段少的话数据访问层的SQL语句封装还好实现,可是字段一旦多起来,比如十多个二十多个字段的话,SQL的封装将会是一个巨大的难题,并不是说难度有多大,而是这样的操作很繁琐,况且极容易出错,SQL语句一旦出错很难排查.我也是在开发中遇到了相同的问题,这样的问题总会浪费很多不必要的时间,所以我就想能不能提供一个公共的基础组件来实现繁琐的底层SQL语句操作,我们只需要调用一些简单的借口就能实现数据库的快捷的写库.首先,写库时必要的信息包含:要写入的列名,还有就是数据实体.(

Unity3D开发基础组件提取总结

在游戏开发过程中,除了逻辑功能的开发之外,还有非常多基础的模块.这些模块,对大部分手机网络游戏来说都是一样的.所以,在上个游戏已经上线运营大半年之际,我认为有必要将这些模块整理出来.让后面其它游戏的开发,能够不用从0開始.该游戏client採用Unity3D开发,那么我们这里抽取的基础组件也就是针对Unity3D引擎来的. 简单的梳理之后,我发现主要有下面一些模块,能够独立抽取出来,当然各个模块之间也有一个依赖关系.比方日志模块,差点儿是全部模块都须要依赖的. 1.日志模块 游戏开发中,我们避免

android四大基础组件--Service生命周期详解

android四大基础组件--ServiceService 生命周期详解 1.Service的生命周期: I> 在非绑定Service情况下,只有oncreate(),onStartCommand(),onDestory()方法情况下:  操作方法对应生命周期一: a.[执行startService(Intent)] 执行生命周期方法:oncreate()--->onStartCommand(): b.[执行stopService(Intent)] 执行生命周期方法:onDestory();

数据分析 关于基础组件与介绍

第二部分 关于基础组件与介绍 基础信息库种类 基础信息库是账户或者自然人的纯真数据库查询系统.系统内积累存储的数据包括有: ü 手机号归属信息 ü IP数据纯真库 ü GPS信息对应地址信息 ü 域名空间身份信息 ü 3G分组域通讯信息 ü VPN服务器基础信息 ü VPN服务器日志信息(最新的区域时间段) ü 国内运输系统基础数据 ü 网络帐号密码查询系统 ü 网络帐号详情搜索查询 3S定位技术 3S 是通过遥感技术(RS).地理信息系统(GIS).全球定位系统(GPS)实现位置确认技术的统称

CentOS安装LNMP环境的基础组件

注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. 在安装LNMP环境之前,请确保已经使用yum安装了以下各类基础组件(如果系统已自带,还可以考虑yum update下基础组件): gcc cmake openssl+openssl-devel pcre+pcre-devel bzip2+bzip2-devel libcurl+curl+curl-devel libjpeg+libjpeg-devel libpng+libpng-devel freetype+freetype-

关于Linux开源项目基础组件make编译流程

?? 关于Linux开源项目基础组件make编译流程 非常多Linux开源项目都会用到编译出可运行文件的make.这个是有一套流程的. 首先,GNU构建系统:https://en.wikipedia.org/wiki/GNU_build_system 使用Autotool来编译和管理整个产品的生产流程. 就是以下这张图: 这里面须要先了解make和makefile make:https://en.wikipedia.org/wiki/Make_(software) makefile:https:

Ext JS 6学习文档-第3章-基础组件

基础组件 在本章中,你将学习到一些 Ext JS 基础组件的使用.同时我们会结合所学创建一个小项目.这一章我们将学习以下知识点: 熟悉基本的组件 – 按钮,文本框,日期选择器等等 表单字段的校验 菜单和工具栏 设计一个表单 计算器程序– 本章的示例项目 转载请注明出处:http://www.jeeboot.com/archives/1219.html 本章的主要目的是创建一个表单设计和一个计算器示例项目.以下图分别展示了表单设计和计算器设计. 首先,你观察下列表单设计,你会发现我们使用了大量的控