unity学习52:UI的最基础组件 rect transform,锚点anchor,支点/轴心点 pivot

news2025/2/26 20:08:17

目录

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的空间宽高--大小固定,必然会显示效果不好
  1. 大分辨率下显得小
  2. 小分辨率下显得大
  3. 而我门希望,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 缩放

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

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

相关文章

【Python系列】PYTHONUNBUFFERED=1的作用

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Linux中的cgdb的基本使用

1.cgdb的简介 Linux中的cgdb是一个基于GDB(GNU Debugger)的图形化调试前端,它结合了GDB的命令行界面功能和代码查看窗口,为开发者提供了一个更为直观的调试体验。 cgdb的作用和功能: 直观调试体验:cgdb提供…

解决idea2019创建springboot项目爆红的问题

通过spring Initializr创建springboot项目时,由于idea版本太低,创建完成后需要手动修改pom.xml,对小白不太友好 一个简便的方法,配置好pom.xml文件的各个版本: 在 https://start.aliyun.com/ 上选择好后复制pom.xml代…

DeepSeek 提示词:基础结构

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

自动驾驶两个传感器之间的坐标系转换

有两种方式可以实现两个坐标系的转换。 车身坐标系下一个点p_car,需要转换到相机坐标系下,旋转矩阵R_car2Cam,平移矩阵T_car2Cam。点p_car在相机坐标系下记p_cam. 方法1:先旋转再平移 p_cam T_car2Cam * p_car T_car2Cam 需要注…

[实现Rpc] 客户端 | Requestor | RpcCaller的设计实现

目录 Requestor类的实现 框架 完善 onResponse处理回复 完整代码 RpcCaller类的实现 1. 同步调用 call 2. 异步调用 call 3. 回调调用 call Requestor类的实现 (1)主要功能: 客户端发送请求的功能,进行请求描述对服务器…

smolagents学习笔记系列(五)Tools-in-depth-guide

这篇文章锁定官网教程中的 Tools-in-depth-guide 章节,主要介绍了如何详细构造自己的Tools,在之前的博文 smolagents学习笔记系列(二)Agents - Guided tour 中我初步介绍了下如何将一个函数或一个类声明成 smolagents 的工具&…

axios几种请求类型的格式

Axios 是一个基于 Promise 的 HTTP 客户端,广泛用于浏览器和 Node.js 中发送 HTTP 请求。它支持多种请求格式,包括 GET、POST、PUT、DELETE 等。也叫RESTful 目录 一、axios几种请求类型的格式 1、get请求 2、post请求 3、put请求 4、delete请求 二…

架构设计系列(六):缓存

一、概述 在应用对外提供服务的时候其稳定性,性能会受到诸多因素的影响。缓存的作用是将频繁访问的数据缓存起来,避免资源重复消耗,提升系统服务的吞吐量。 二、缓存的应用场景 2.1 客户端 HTTP响应可以被浏览器缓存。我们第一次通过HTTP请…

个人电脑小参数GPT预训练、SFT、RLHF、蒸馏、CoT、Lora过程实践——MiniMind图文版教程

最近看到Github上开源了一个小模型的repo,是真正拉低LLM的学习门槛,让每个人都能从理解每一行代码, 从零开始亲手训练一个极小的语言模型。开源地址: GitHub - jingyaogong/minimind: 🚀🚀 「大模型」2小时…

格式工厂 FormatFactory v5.18.便携版 ——多功能媒体文件转换工具

格式工厂 FormatFactory v5.18.便携版 ——多功能媒体文件转换工具 功能:视频 音频 图片 文档PDF格式 各种转换,同格式调整压缩比例,调整大小 特色:果风图标 好看; 支持多任务队列,完成自动关机 下载地址&#xff1…

KafkaTool

Offset Explorer 第一次打开需要配置kafka相关配置连接 随便先启动一个Kafka(先启动zookeeper) 设置key value 记得刷新

基于C++“简单且有效”的“数据库连接池”

前言 数据库连接池在开发中应该是很常用的一个组件,他可以很好的节省连接数据库的时间开销;本文基使用C实现了一个简单的数据库连接池,代码量只有400行只有,但是压力测试效果很好;欢迎收藏 关注,本人将会…

国产编辑器EverEdit - 洞察秋毫!文件比较功能!

1 文件比较 1.1 应用场景 项目开发过程中,可能不同的部分会由不同的人在负责,存在一个文件多人编辑的情况,用户需要寻找差异,并将文档进行合并,比较专业的文本比较工具为BeyondCompare,WinMerge等。   如…

QARepVGG--含demo实现

文章目录 前言引入Demo实现总结 前言 在上一篇博文RepVGG中,介绍了RepVGG网络。RepVGG 作为一种高效的重参数化网络,通过训练时的多分支结构(3x3卷积、1x1卷积、恒等映射)和推理时的单分支合并,在精度与速度间取得了优…

kotlin 知识点 七 泛型的高级特性

对泛型进行实化 泛型实化这个功能对于绝大多数Java 程序员来讲是非常陌生的,因为Java 中完全没有这个概 念。而如果我们想要深刻地理解泛型实化,就要先解释一下Java 的泛型擦除机制才行。 在JDK 1.5之前,Java 是没有泛型功能的,…

Transformer LLaMA

一、Transformer Transformer:一种基于自注意力机制的神经网络结构,通过并行计算和多层特征抽取,有效解决了长序列依赖问题,实现了在自然语言处理等领域的突破。 Transformer 架构摆脱了RNNs,完全依靠 Attention的优…

Qt学习 网络编程 TPC通信

一 基本网络端口 1 网络编程基本概念 通讯方式:信息的通讯时通过网络来进行,通讯方式有两种,TCP和UDP通信,TCP通讯是专用通道,指定某个信息只能走某个通道,UDP则是非专用通道,比如一个车队&am…

ESP32-S3 实战指南:BOOT-KEY 按键驱动开发全解析

一、基础知识 本篇我们使用 BOOT 按键来学习一下 GPIO 功能,首先补充一下相关术语介绍。 1、GPIO(General Purpose Input/Output) GPIO 是微控制器上的通用引脚,既可以作为输入(读取外部信号)&#xff0…

ssh配置 远程控制 远程协作 github本地配置

0.设备版本 windows11 ubuntu24.0.4 1.1 在 Linux 上启用 SSH 服务 首先,确保 Linux 计算机上安装并启用了 SSH 服务。 安装和启动 OpenSSH 服务(如果未安装) # 在终端安装 OpenSSH 服务(如果尚未安装) sudo apt …