unity学习52:UI的最基础组件 rect transform,锚点anchor,支点/轴心点 pivot
目录
1 image 图像:最简单的UI
1.1 图像的基本属性
1.2 rect transform
1.3 image的component: 精灵 → 图片
1.4 修改颜色color
1.5 修改材质
1.6 raycast target
1.7 maskable 可遮罩
1.8 imageType
1.9 native size 原生大小
2 rect transform
2.1 rect transform
2.2 UI和图像等是没有Z轴的!
2.2.1 注意: UI用的是X Y坐标系。 但是u3d里 地平面是X Z,所以UI是竖着的
2.3 位置
2.4 注意 锚点anchor 和 支点 pivot (外点和 内点)
2.5 物体的宽高
3 锚点 Anchor
3.1 注意 锚点anchor 容易理解错的地方
3.1.1 每个物体都有锚点!锚点不是canvas的统一的!
3.1.2 每个物体都有锚点都是相对父物体设置的(设置在父物体身上!)
3.2 锚点的4个点可以分为为一个小方块,分别对应4个范围
3.3 比较,锚点为1个点聚合和分开时, rect transform的参数都变化了
3.3.1 锚点为1个点聚合时,重点是本身大小不变
3.3.2 锚点为分开时, rect transform的参数都变化了
3.4 锚点分开后,rect transform 是left top ,right bottom, 重点变化为距离anchor的4个边的距离不变
3.4.2 极端情况: 锚点爪子调成和UI全部一样大
3.4.3 极端情况: 锚点爪子调成1行 或者1列
4 支点/ 轴心点 pivot
4.1 打开,切换按钮
4.2 如果设置pivot在中间,然后旋转
4.3 如果设置pivot在角上,然后旋转
5 快捷设置
6 旋转
7 缩放
1 image 图像:最简单的UI
- UI里最简单的内容就是image 图像
1.1 图像的基本属性
1.2 rect transform
- gameObject最基本的component就是 transform
- 而对应的,
- UI的元素最基本的component就是 rect transform
- 对应 矩形的操作
1.3 image的component: 精灵 → 图片
1.4 修改颜色color
1.5 修改材质
1.6 raycast target
- 勾选上,才是射线检测,点击判断的对象
- 否则就无法选中
1.7 maskable 可遮罩
- 是否可以被遮罩
1.8 imageType
- simple //简单。 读原始的图像像素?
- sliced // 切片
- tiled //平铺
- filled //填充
比如这个图下面是 tiled的效果
1.9 native size 原生大小
2 rect transform
2.1 rect transform
- gameObject最基本的component就是 transform
- 而对应的,
- UI的元素最基本的component就是 rect transform
- 对应 矩形的操作
2.2 UI和图像等是没有Z轴的!
- UI是2D的,只有,X,Y 2个维度
- 默认是没有Z轴的
- 除非故意改到 X Z那边去?
2.2.1 注意: UI用的是X Y坐标系。 但是u3d里 地平面是X Z,所以UI是竖着的
- 虽然在scene里
- 我们一般用 X,Z表示 屏幕, Y表示纵轴,高度
- 但是在UI里
- 我们不是X Z,而是用X,Y 这个坐标系,所以UI是竖着的
2.3 位置
- 默认情况下,会发现
- 实际上,image在canvas里的 pos是以 锚点anchor为原点的坐标系内的坐标
- 实际上即使类基础数学里的 1,2,3,4 象限
- 接下来的问题
- 那么代表image的是哪个点呢?
- 就是中心那个 pivot 轴心点/ 支点
- 也就是image在canvas 的位置 pos
- 是 pviot 相对于 anchor这个原点的相对位置/坐标,仅此而已
2.4 注意 锚点anchor 和 支点 pivot (外点和 内点)
- 每个物体都有锚点anchor 和 支点 pivot
- 相当于每个物体都有2个 关键点
- 1个挂在父物体身上 anchor(外点)
- 1个挂碍自己身上,pivot (内点)
- 两个点共同决定了,物体在UI中的位置
2.5 物体的宽高
- UI的控件,也有宽高
- 但是因为UI需要适配各种分辨率的 game窗口,如果UI的空间宽高--大小固定,必然会显示效果不好
- 大分辨率下显得小
- 小分辨率下显得大
- 而我门希望,UI的内容,显示相对稳定,大小相当不变!
3 锚点 Anchor
3.1 注意 锚点anchor 容易理解错的地方
3.1.1 每个物体都有锚点!锚点不是canvas的统一的!
- anchor 不是canvas的
- 而是每个图片都有的
- 每个图片都有自己的锚点anchor 和支点pivot!
3.1.2 每个物体都有锚点都是相对父物体设置的(设置在父物体身上!)
- 但是每个物体都有锚点都是相对父物体设置的
- 也就是UI控件的锚点,都是设置在父物体身上!
- 一般是设置在canvas身上
3.2 锚点的4个点可以分为为一个小方块,分别对应4个范围
- 锚点的4个点可以分为为一个小方块,分别对应4个范围
- 最小X,最小Y
- 最大X,最大Y
- min点:小方块左下角点,最小X,最小Y
- max点: 小方块右上角点;最大X,最大Y
3.3 比较,锚点为1个点聚合和分开时, rect transform的参数都变化了
3.3.1 锚点为1个点聚合时,重点是本身大小不变
- rect transform 是pos width height
- 这时的宽高,位置,都是定死的
- 位置就是 anchor piovt决定的
- 宽高就是显示的数值,不变了
3.3.2 锚点为分开时, rect transform的参数都变化了
- rect transform 是left top ,right bottom
3.4 锚点分开后,rect transform 是left top ,right bottom, 重点变化为距离anchor的4个边的距离不变
- 一旦这样了,实际image的 位置,大小宽高都会变化了
- 因为这样只决定 image相对锚点anchor的4个位置的距离,重点是保持距离不变,而图片会被拉伸缩小等
- 锚点分开后,rect transform 是left top ,right bottom
- 就是image相对于,这个小方块,的4个边的距离
- 这样缩放时,因为与这个小方块,的4个边的距离固定了比例,就会跟着变大变小
也就是这个小盾牌,相对这个锚点4个爪子的小方块的位置!
3.4.2 极端情况: 锚点爪子调成和UI全部一样大
- 极端情况: 锚点爪子调成和UI全部一样大
- 这样image相对于UI的位置就确定了,会跟着一起缩放
3.4.3 极端情况: 锚点爪子调成1行 或者1列
- 极端情况: 锚点爪子调成1行 或者1列
- 如果是1行,那么这个空间上下Y的维度应该不变了,只会伸缩X轴
- 左右可能拉伸,高度锁定
如果是1列,那么这个空间左右X的维度应该不变了,只会伸缩Y轴
4 支点/ 轴心点 pivot
- pivot决定图片本身的旋转等
4.1 打开,切换按钮
4.2 如果设置pivot在中间,然后旋转
- 点矩形,修改pivot
- 点E选择,修改旋转
4.3 如果设置pivot在角上,然后旋转
- 点矩形,修改pivot
- 点E选择,修改旋转
5 快捷设置
6 旋转
无
7 缩放
无
相关文章:

unity学习52:UI的最基础组件 rect transform,锚点anchor,支点/轴心点 pivot
目录 1 image 图像:最简单的UI 1.1 图像的基本属性 1.2 rect transform 1.3 image的component: 精灵 → 图片 1.4 修改颜色color 1.5 修改材质 1.6 raycast target 1.7 maskable 可遮罩 1.8 imageType 1.9 native size 原生大小 2 rect transform 2.1 …...

STM32MP15-FSMP1A单片机移植Linux系统platform总线驱动
之前在该单片机下移植的Linux驱动是学习过程中,对Linux内核驱动的引导学习,接下来才是比较正常的驱动开发。 在Linux内核中,对于驱动的处理,一般会通过总线进行设备信息和设备驱动的匹配,来达到自动检测外设连接系统以…...
Java 常见的面试题(设计模式)
一、说一下你熟悉的设计模式? **设计模式:**是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案)。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使人们可以更加简…...

机器学习3-聚类
1 聚类解决的问题 知识发现,发现事物之间的潜在关系异常值检测特征提取 数据压缩的例子新闻自动分组、用户分群、图像分割、像素压缩等等 2 与监督学习比较 监督学习是需要给定X、Y,X为特征,Y为标签,选择模型,学习&a…...

html中的css
css (cascading style sheets,串联样式表,也叫层叠样式表) css规范一般约定: 1.存放CSS样式文件的目录一般命名为style或css。 2.在项目初期,会把不同类别的样式放于不同的CSS文件,是为了CSS编…...

36. Spring Boot 2.1.3.RELEASE 中实现监控信息可视化并添加邮件报警功能
1. 创建 Spring Boot Admin Server 项目 1.1 添加依赖 在 pom.xml 中添加 Spring Boot Admin Server 和邮件相关依赖: <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-w…...

Linux: 已占用接口
Linux: 已占用接口 1. netstat(适用于旧系统)1.1 书中对该命令的介绍 2. ss(适用于新系统,替代 netstat)3. lsof(查看详细进程信息)4. fuser(快速查找占用端口的进程)5. …...

Vscode的通义灵码占用空间过大问题【.lingma】
C盘空间发现没装几个软件但是空间占用太离谱了, 最后排查发现是一个.lingma的文件夹问题,这个文件夹用了我居然差不多一百G的空间, 点进去。删除掉ai训练时产生的dbc文件就好了, windowsI 打开系统设置,搜索存储&#…...

鸿蒙Next如何自定义标签页
前言 项目需求是展示标签,标签的个数不定,一行展示不行就自行换行。但是,使用鸿蒙原生的 Grid 后发现特别的难看。然后就想着自定义控件。找了官方文档,发现2个重要的实现方法,但是,官方的demo中讲的很少&…...

知识拓展:Python 接口实现方式对比:Protocol vs @implementer
Python 接口实现方式对比:Protocol vs implementer 1. 两种接口实现方式 1.1 Python Protocol(结构化子类型) from typing import Protocolclass DownloadHandlerProtocol(Protocol):def download_request(self, request: Request, spider:…...
开源程序wordpress在海外品牌推广中的重要作用
WordPress作为全球最流行的开源内容管理系统(CMS),在全球网站搭建中占据超过40%的市场份额。其强大的功能、灵活性和易用性使其成为企业进行海外品牌推广的首选平台。以下是WordPress在海外品牌推广中的重要性分析: 1. 多语言支持与本地化 WordPress通…...
【Python爬虫(89)】爬虫“反水”:助力数字版权保护的逆向之旅
【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取ÿ…...
k8s面试题总结(五)
1.考虑一种情况,即公司希望通过维持最低成本来提高其效率和技术运营速度。您认为公司将如何实现这一目标? 公司可以通过构建 CI/CD 管道来实现 DevOps 方法,但是这里可能出现的一个问题是配置可能需要一段时间才能启动并运行。 因此&#x…...

文章精读篇——用于遥感小样本语义分割的可学习Prompt
题目:Learnable Prompt for Few-Shot Semantic Segmentation in Remote Sensing Domain 会议:CVPR 2024 Workshop 论文:10.48550/arXiv.2404.10307 相关竞赛:https://codalab.lisn.upsaclay.fr/competitions/17568 年份&#…...
Spring Boot2.0之十 使用自定义注解、Json序列化器实现自动转换字典类型字段
前言 项目中经常需要后端将字典类型字段值的中文名称返回给前端。通过sql中关联字典表或者自定义函数不仅影响性能还不能使用mybatisplus自带的查询方法,所以推荐使用自定义注解、Json序列化器,Spring的缓存功能实现自动转换字典类型字段。以下实现Spri…...

从电子管到量子计算:计算机技术的未来趋势
计算机发展的历史 自古以来人类就在不断地发明和改进计算工具,从结绳计数到算盘,计算尺,手摇计算机,直到1946年第一台电子计算机诞生,虽然电子计算机至今虽然只有短短的半个多世纪,但取得了惊人的发展吗,已经经历了五代的变革。计算机的发展和电子技术的发展密切相关,…...

将CUBE或3DL LUT转换为PNG图像
概述 在大部分情况下,LUT 文件通常为 CUBE 或 3DL 格式。但是我们在 OpenGL Shader 中使用的LUT,通常是图像格式的 LUT 文件。下面,我将教大家如何将这些文件转换为 PNG 图像格式。 条形LUT在线转换(不是8x8网络)&am…...

python文件的基本操作,文件读写
1.文件 1.1文件就是存储在某种长期存储设备上的一段数据 1.2文件操作 打开文件-->读写文件-->关闭文件 注意:可以只打开和关闭文件不进行任何操作 1.3文件对象的方法 1.open():创建一个file对象,默认以只读模式打开 2.read(n):n表示从文件中…...

华为认证考试证书下载步骤(纸质+电子版)
华为考试证书可以通过官方渠道下载相应的电子证书,部分高级认证如HCIE还支持申请纸质证书。 一、华为电子版证书申请步骤如下: ①访问华为培训与认证网站 打开浏览器,登录华为培训与认证官方网站 ②登录个人账号 在网站首页,点…...

正式页面开发-登录注册页面
整体路由设计: 登录和注册的切换是切换组件或者是切换内容(v-if和 v-else),因为点击两个之间路径是没有变化的。也就是登录和注册共用同一个路由。登录是独立的一级路由。登录之后进到首页,有三个大模块:文章分类&…...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...

uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...