第三十八章 Unity GUI系统(下)

news2024/11/15 11:21:04

上一章节我们将了UI的锚点,关于锚点我们只讲了一半,因为锚点并不只是一个点,它还可以是一个矩形。

我们可以将锚点拆开(鼠标选中后拖动),也就是将“四瓣雪花”拆成“四瓣”。那么此时锚点就成为一个矩形。我们可以点击矩形任意一个点,都可以拖动改变矩形的大小。与此同时,我们查看Inspector检视视图中的一些变化。

我们发现“Anchors”的四个数值发生了改变,其次就是TextUI元素的PosX,PosY,Width,Height的属性消失了,替代的是Left,Top,Right,Bottom四个属性。我们首先介绍“Anchors”的四个数值,他们仍然是一个百分比数值,只是数值的含义发生了变化,我们以下图为例,

我们观察在水平和垂直方向都存在三个数值,他们的和正好是100%。

这些数值在上面中大致可以找到相似值,他们应该分别是Xmin=50%, Xmax=80%,Ymin=20%, Ymax=50% 。我们还可以这样理解,画布是一个矩形,锚点也是一个矩形,锚点矩形的“左右两边”距离画布“左边”的距离,锚点矩形的“上下两边”距离画布“上边”的距离。由于锚点矩形的四条边都确定了位置,那么锚点矩形的位置和尺寸也就确定了。而且,这个位置和尺寸是百分比数值。也就是说,画布缩放的时候,我们的锚点矩形也会跟随一些缩放。那么剩下的就是TextUI元素Left,Top,Right,Bottom的四个属性。

我们将上面的Left,Top,Right,Bottom的四个属性置零,来查看TextUI元素

我们发现,TextUI元素竟然与锚点矩形重合了,两者的位置和尺寸保持一致。这样做的好处在于,Text UI元素的位置和尺寸都将按照百分比来确定。也就是说,屏幕改变的时候,我们的Text UI 元素的位置会跟随改变,它的尺寸也会跟随改变。

接下来,我们修改Left值为50像素,然后查看TextUI元素的变化。

这个数值50应该就是TextUI元素“左边”距离锚点矩形“左边”的距离。那么我们推理而得,Top就应该是TextUI元素“上边”距离锚点矩形“上边”的距离,Right应该就是TextUI元素“右边”距离锚点矩形“右边”,Bottom应该是TextUI元素“下边”距离锚点矩形“下边”的距离。注意,他们的数值的单位是像素,不是百分比。

 

当然,我们还可以将这些数值改成“负值”,这样TextUI元素就会“跳出”到锚点矩形的外面了。总之,只要我们改变Left,Top,Right,Bottom四个数值,TextUI元素基本上可以布局在画布的任意位置上面。那么,这个方式与之前的锚点方式有什么区别嘛?我们之前讲过,TextUI元素有两个重要的参数,一个是位置,一个是尺寸。两种不同的锚点方式布局对于TextUI元素的位置信息的确定基本是相似的(百分比),但是尺寸信息是不一样的,前者是固定像素(width/height),后者是百分比(四条边的百分比)。也就是说,如果我们想要固定UI元素的尺寸,就可以使用锚点定位,如果我们想要UI元素的尺寸也随之改变,就可以使用锚点矩形定位。这样理解,就比较简单了吧。

最后我们再查看一下TextUI元素的特有Text组件。

TextUI元素主要用来显示文字,也就是标签的功能。因此,它的第一个Text属性就表示要显示的文字内容,我们可以手动修改它。

 

接下来的“Character”是对文本样式的设置,例如,Font字体,Font Style字体样式,Font Size字号,Line Spacing行间距,Rich Text是否富文本等等。接下来就是“Paragraph”排版相关的参数,Alignment水平和垂直对齐方式,Align by Geometry表示使用字形几何形状的范围(而不是字形指标)执行水平对齐(默认没有勾选这个项),Horizontal Overflow和Vertical Overflow表示水平和垂直方向文字溢出的处理方式,Best Fit就是文本使用UI控件大小(默认没有勾选这个项)。Color 用于渲染文本的颜色,这个就不用多介绍了。大家可以自己设置一下查看效果,这里就不再详细介绍了。

最后,我们再说明一下UI元素的渲染顺序的问题。Canvas的渲染顺序由相机的Depth决定,值越大,越优先渲染,覆盖值小的。Canvas的渲染顺序由它的Sorting layer决定。后面的层覆盖前面的层。这个层顺序是在“Tag&Layer窗口”中的层顺序。如果层相同,就要靠Order in Layer的值来决定。值越大越靠前。UI的覆盖顺序也可以由Hierarchy层次面板顺序来决定,上面覆盖下面的。一个UI可以添加Canvas组件,在该组件中有Sorting layer和Order in Layer选项使用。由它们来决定UI的前后覆盖顺序。这个两个值的权重大于Hierarchy层次面板中的顺序。这里需要注意的是,Canvas作为游戏对象是UI的根元素,Canvas作为组件是用来控制UI的渲染顺序,这里要做区分。

本课程涉及的内容已经共享到百度网盘:https://pan.baidu.com/s/1e1jClK3MnN66GlxBmqoJWA?pwd=b2id

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/498470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

00-docker篇: linux系统安装docker操作 (最实用的操作)

目录 1. docker 简介 -> 简易理解: -> docker是否有自己仓库呢 -> docker 是靠什么运行呢 -> 简单说点docker优点 2. linux安装docker ps: 如果是新服务器 请直接看2. 3 -> 2.1: 查看内核版本: -> 2.2 如果有残留docker, 删除指令 -> 2.3 yu…

2023年全国职业院校技能大赛网络建设与运维-网络运维部分

全国职业院校技能大赛 网络建设与运维 五、网络运维 某单位网络拓扑架构如下,交换机连接两台服务器,其中Server1服务器是数字取证服务器,Server2服务器是应急响应服务器,通过交换设备相连,通过路由设备连接到安全设…

Portraiture4最新版滤镜P图一键磨皮插件

今天coco玛奇朵给大家带来了一款ps磨皮插件,超级简单好用。Portraiture 滤镜是一款 Photoshop,Lightroom 和 Aperture 插件,DobeLighttroom 的 Portraiture 消除了选择性掩蔽和逐像素处理的繁琐的手工劳动,以帮助您在肖像修整方面…

如何使用 ChatGPT 来快速编写产品需求文档(PRD)

PRD 生成 ChatGPT 即了解具体的编程知识,也了解编程之前的需求设计过程。因此产品经理也可以使用 ChatGPT 来快速编写PRD(产品需求文档, production requirement documentation)。 根据需求编写 PRD 首先,我们可以尝试把需求交给 ChatGPT,…

模型如何压缩?使用轻量化的模型压缩技术剪枝(pruning)

深度学习模型参数太多,本地服务器部署没有问题,但是如果部署到移动端、边缘端,像手机、树莓派等,它们的性能不能满足,所以我们要压缩模型大小,让他们可以部署到边缘端 模型压缩:使用轻量化的模型…

Redis 布隆过滤器总结

Redis 布隆过滤器总结 适用场景 大数据判断是否存在来实现去重:这就可以实现出上述的去重功能,如果你的服务器内存足够大的话,那么使用 HashMap 可能是一个不错的解决方案,理论上时间复杂度可以达到 O(1) 的级别,但是…

Flutter 开发的那些小细节

Flutter 创建应用的小注意 包名 每当创建一个新的 Flutter 应用时,一些 Flutter IDE 插件会请你输入一个类似 com.example 的包名,包名(在 iOS 里叫 Bundle ID)一般都是公司域名的反写。如果你的应用打算上架商店,建…

NetApp 7-mode下Autosupport日志的收集

前面介绍过NetApp Cluster mode下autosupport日志的收集方法,最近遇到很多7-mode下客户扔出一个有故障指示灯的照片,然后让你判断问题的case。NetApp没有一个命令能很清晰的把所有的和硬件有关的问题列出来的命令。客户随之就说,要不输入一条…

【操作系统OS】学习笔记第三章 内存管理【哈工大李治军老师】

基于本人观看学习 哈工大李治军老师主讲的操作系统课程 所做的笔记&#xff0c;仅进行交流分享。 特此鸣谢李治军老师&#xff0c;操作系统的神作&#xff01; 如果本篇笔记帮助到了你&#xff0c;还请点赞 关注 支持一下 ♡>&#x16966;<)!! 主页专栏有更多&#xff0…

《机器学习算法竞赛实战》-chapter6模型融合

模型融合 模型融合常常是竞赛取得胜利的关键&#xff01; 具有差异性的模型融合往往能给结果带来很大的提升。虽然并不是每次使用模型融合都能起到很大的作用&#xff0c;但是就平常的竞赛经验而言&#xff0c;尤其是在最终成绩相差不大的情况下&#xff0c;模型融合的方法往往…

法规标准-GB/T 39265标准解读(2020版)

GB/T 39265是做什么的&#xff1f; GB/T 39265全名为道路车辆 盲区检测系统性能要求及试验方法&#xff0c;其中主要是对BSD系统的性能要求及测试步骤进行了介绍。本文仅解读M1、N1类车辆相关内容。 一般要求 系统开启与关闭 1.BSD系统应具备手动开启和关闭的功能 2.手动关…

巧用 exports 和 typeVersions 提升 npm 包用户使用体验

默认导出 对于开发一个 JavaScript 三方库供外部使用而言&#xff0c;package.json是其中不可缺少的一部分 一般而言&#xff0c;对于库开发者来说&#xff0c;我们会在package.json中指定我们的导出入口。一般而言会涉及两个字段main和export&#xff0c;它们会涉及到当前模…

开关电源基础03:正激和反激开关电源拓扑(2)-半桥和全桥拓扑

说在开头&#xff1a;关于薛定谔的波动方程&#xff08;3&#xff09; 波动方程在矩阵派的内部也大受欢迎&#xff0c;首先是海森堡的老师索末菲&#xff0c;然后是建立矩阵力学的核心人物之一的另一位老师&#xff1a;马克思.玻恩。玻恩在薛定谔方程刚出来时就赞扬了他的成就…

宕机了?!DolphinScheduler 高可用和 Failover 机制关键时刻保命

点击蓝字 关注我们 高可用性是 Apache DolphinScheduler 的特性之一。它通过冗余来避免单点问题&#xff0c;所有组件天然支持横向扩容&#xff1b;但仅仅保证了冗余还不够&#xff0c;当系统中有节点宕机时&#xff0c;还需要有故障转移机制能够自动将宕机节点正在处理的工作转…

【react 全家桶】高级指引(上)

本人大二学生一枚&#xff0c;热爱前端&#xff0c;欢迎来交流学习哦&#xff0c;一起来学习吧。 <专栏推荐> &#x1f525;&#xff1a;js专栏 &#x1f525;&#xff1a;vue专栏 &#x1f525;&#xff1a;react专栏 文章目录 12 【react高级指引&#xff08;上&…

I.MX6Q-SDB开发板移植ubuntu

I.MX6Q-SDB开发板移植ubuntu 0.前言一、准备工作二、ubuntu移植1.下载ubuntu发布的根文件系统2.根文件系统的简单修改3.板卡适配设置4.打包根文件系统 三、烧写镜像1.dd命令2.uuu工具3.mfgtool工具4.i.mx6q-sdb的拨码设置&#xff1a; 四、大无语事件 0.前言 这两天收拾杂货堆&…

密码学【java】初探究加密方式之数字签名

文章目录 前言1 数字签名简介2 基本原理3 数字证书4 网页加密5 edge的网站连接图标6 代码实现7 keytool工具使用7.1 常用命令&#xff1a;7.2 生成私钥公钥[未实践成功]7.3 导出公钥 前言 有关keytool的使用部分&#xff0c;未实现&#xff0c;先记录下来&#xff01;&#xf…

『python爬虫』12. 模拟登陆之cookie的使用(保姆级图文)

目录 session1. 模拟登陆取得cookie2. 在登录的情况下继续取得书架上的数据3. 在已经有cookie的情况下直接请求总结 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 session session和我们之前用的request十分相似&…

AWS Lambda - 同步/异步调用,事件源,目标

Hello大家好&#xff0c;我们今天继续讨论AWS Lambda的内容。 同步调用 Lambda函数有三种调用方式。 第一种方式是同步调用。 当我们使用API、CLI以及API网关等调用函数时&#xff0c;就是同步调用。 当您同步调用函数时&#xff0c;Lambda会运行该函数并等待响应&#xff…

微服务---Redis入门篇-Redis的常见命令和客户端使用

Redis快速入门 Redis的常见命令和客户端使用 1.初识Redis Redis是一种键值型的NoSql数据库&#xff0c;这里有两个关键字&#xff1a; 键值型 NoSql 其中键值型&#xff0c;是指Redis中存储的数据都是以key、value对的形式存储&#xff0c;而value的形式多种多样&#xf…