当前位置: 首页 > news >正文

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的空间宽高--大小固定,必然会显示效果不好
  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 缩放

相关文章:

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 和邮件相关依赖&#xff1a; <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-w…...

Linux: 已占用接口

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

Vscode的通义灵码占用空间过大问题【.lingma】

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

鸿蒙Next如何自定义标签页

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

知识拓展:Python 接口实现方式对比:Protocol vs @implementer

Python 接口实现方式对比&#xff1a;Protocol vs implementer 1. 两种接口实现方式 1.1 Python Protocol&#xff08;结构化子类型&#xff09; from typing import Protocolclass DownloadHandlerProtocol(Protocol):def download_request(self, request: Request, spider:…...

开源程序wordpress在海外品牌推广中的重要作用

WordPress作为全球最流行的开源内容管理系统(CMS)&#xff0c;在全球网站搭建中占据超过40%的市场份额。其强大的功能、灵活性和易用性使其成为企业进行海外品牌推广的首选平台。以下是WordPress在海外品牌推广中的重要性分析&#xff1a; 1. 多语言支持与本地化 WordPress通…...

【Python爬虫(89)】爬虫“反水”:助力数字版权保护的逆向之旅

【Python爬虫】专栏简介&#xff1a;本专栏是 Python 爬虫领域的集大成之作&#xff0c;共 100 章节。从 Python 基础语法、爬虫入门知识讲起&#xff0c;深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑&#xff0c;覆盖网页、图片、音频等各类数据爬取&#xff…...

k8s面试题总结(五)

1.考虑一种情况&#xff0c;即公司希望通过维持最低成本来提高其效率和技术运营速度。您认为公司将如何实现这一目标&#xff1f; 公司可以通过构建 CI/CD 管道来实现 DevOps 方法&#xff0c;但是这里可能出现的一个问题是配置可能需要一段时间才能启动并运行。 因此&#x…...

文章精读篇——用于遥感小样本语义分割的可学习Prompt

题目&#xff1a;Learnable Prompt for Few-Shot Semantic Segmentation in Remote Sensing Domain 会议&#xff1a;CVPR 2024 Workshop 论文&#xff1a;10.48550/arXiv.2404.10307 相关竞赛&#xff1a;https://codalab.lisn.upsaclay.fr/competitions/17568 年份&#…...

Spring Boot2.0之十 使用自定义注解、Json序列化器实现自动转换字典类型字段

前言 项目中经常需要后端将字典类型字段值的中文名称返回给前端。通过sql中关联字典表或者自定义函数不仅影响性能还不能使用mybatisplus自带的查询方法&#xff0c;所以推荐使用自定义注解、Json序列化器&#xff0c;Spring的缓存功能实现自动转换字典类型字段。以下实现Spri…...

从电子管到量子计算:计算机技术的未来趋势

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

将CUBE或3DL LUT转换为PNG图像

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

python文件的基本操作,文件读写

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

华为认证考试证书下载步骤(纸质+电子版)

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

正式页面开发-登录注册页面

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

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...