unity学习51:所有UI的父物体:canvas画布
目录
1 下载资源
1.1 在window / Asset store下下载一套免费的UI资源
1.2 下载,导入import
1.3 导入后在 project / Asset下面可以看到
2 画布canvas,UI的父物体
2.1 创建canvas
2.1.1 画布的下面是 event system是UI相关的事件系统
2.2 canvas基础
2.2.1 切换到2D
2.2.2 使用矩形工具操作UI
2.3 canvas 的白色线框是什么?
2.3.1 canvas 的白色线框,就是game窗口的边界
编辑
2.3.2 下面的UI实验
2.3.3 理解摄像机camera 前景框,就是UI的边界
2.4 创建一个测试的UI
3 canvas的属性
3.1 raycaster
3.2 sacler 缩放
3.2.1 UI的缩放
3.2.1 默认模式: constant pixel size 恒定像素大小
3.2.2 scale with screen size 随着屏幕大小缩放
3.2.3 constant physicl size 恒定物理大小
4 canvas / render mode 渲染模式
4.1 screen space -overlay 覆盖
4.2 screen space -camera
4.2.1 现在这种情况下,canvas永远面向摄像机
4.2.2 物体遮挡UI
4.2.3 UI完全遮挡了物体
4.3 world space
5 sort order
1 下载资源
1.1 在window / Asset store下下载一套免费的UI资源



1.2 下载,导入import

1.3 导入后在 project / Asset下面可以看到

2 画布canvas,UI的父物体
- UI最基础,最底层的就是画布 canvas
- 可以认为是一张,画画基础的白纸
- 也可以认为是最底层的容器吧
- UI的所有内容都必须在canvas上
- UI必须是其他UI内容的父物体

2.1 创建canvas
- UI/ canvas

2.1.1 画布的下面是 event system是UI相关的事件系统
- 创建CANVAS的同时
- 会自动创建一个event system


2.2 canvas基础
- canvas 就是一个白色的虚线框

2.2.1 切换到2D

2.2.2 使用矩形工具操作UI

2.3 canvas 的白色线框是什么?
2.3.1 canvas 的白色线框,就是game窗口的边界
- canvas 的白色线框,就是game窗口的边界
- game窗口不要黑色填充的那部分的边界
2.3.2 下面的UI实验
- 当 game 游戏窗口时 free aspect的情况下
- 随便缩放game窗口,UI线框会跟着变化,变形

- 当 game 游戏窗口时 free aspect的情况下
- 随便缩放game窗口,UI线框会跟着变化,变大变小,而且可能变形

- 当 game 游戏窗口时 16/9 aspect的情况下
- 随便缩放game窗口,UI线框会跟着变化,变大变小,但是一直保持16/9 不变形

2.3.3 总结:UI,完全跟着游戏game窗口的分辨率走,决定最终显示效果
- game窗口的比例,会决定UI的比例
2.3.4 理解摄像机camera 前景框,就是UI的边界
- 摄像机camera,有一个大的锥形盒子
- 摄像机camera 前景框,就是UI的边界
- 后面都是景深内容
- camera 前景框
- 在UI的渲染模式:屏幕空间--摄像机的选择下,也就是UI
2.4 创建一个测试的UI
- 创建 canvas
- 在canvas下,创建子物体 UI/image
- 给image选择一个图片


3 canvas的属性

3.1 raycaster
- 就是之前的 ray 检测。判断人在UI点击位置的
3.2 sacler 缩放
3.2.1 UI的缩放
- UI的缩放是一个很重要的问题
- 因为unity游戏世界 scene里的其他gameObject,都没有这个问题,只有UI有这个问题
- 因为UI要求无论什么分辨率下,都显示相同的效果
- 其他gameObject 都是随着分辨率,缩放的


3.2.2 默认模式: constant pixel size 恒定像素大小
- constant pixel size 恒定的像素
- 默认的缩放模式:constant pixel size 按像素大小缩放
- 我理解就是大分辨率下,恒定的像素就看起来小了
下面2个图分别是这个模式下
- 1920;1080
- 16:9
- 两种结果下不同的分辨率


3.2.3 scale with screen size 随着屏幕大小缩放
- scale with screen size 随着屏幕大小缩放
- 保持某一种屏幕分辨率,无论屏幕怎么缩放,都坚持为这种分辨下的效果

下面2个图分别是这个模式下
- 1920;1080
- 16:9
- 两种结果下不同的分辨率
- 图片固定为1920:1080了,game窗口变成16:9,UI效果完全不变


3.2.4 constant physicl size 恒定物理大小
- constant physicl size
4 canvas / render mode 渲染模式


- screen space -overlay // ui 的内容,永远覆盖在摄像机内容的上面
- screen space -camera // UI也用camera来渲染,总是在camera的正面,且可能场景里更近的东西遮挡UI
- world space //也是camera来渲染。且UI 类gameObject 可以旋转,斜着,等等
4.1 screen space -overlay 覆盖
- ui 的内容,永远覆盖在摄像机内容的上面
- 最常用模式
- 不需要专门的摄像机
- 内容直接覆盖在其他摄像机内容之上!!!就是这么霸道
4.2 screen space -camera
// UI也用camera来渲染,总是在camera的正面,且可能场景里更近的东西遮挡UI
- 选择这个模式
- 需要给 关联一个camera


4.2.1 现在这种情况下,canvas永远面向摄像机
- 现在这种情况下,canvas永远面向摄像机
- 否则UI不能被渲染
4.2.2 物体遮挡UI


4.2.3 UI完全遮挡了物体

4.3 world space
- 也是camera来渲染。
- 也需要关联一个摄像机
- 且UI 类gameObject 可以旋转,斜着,等等
- 选择这个模式后,上面的旋转属性等不再灰色,可以编辑

可以实现这种斜着的效果

5 sort order
- 如果有多个canvas
- 这个order决定显示,覆盖的优先级

相关文章:
unity学习51:所有UI的父物体:canvas画布
目录 1 下载资源 1.1 在window / Asset store下下载一套免费的UI资源 1.2 下载,导入import 1.3 导入后在 project / Asset下面可以看到 2 画布canvas,UI的父物体 2.1 创建canvas 2.1.1 画布的下面是 event system是UI相关的事件系统 2.2 canvas…...
ctfshow做题笔记—栈溢出—pwn57~pwn60
目录 前言 一、pwn57(先了解一下简单的64位shellcode吧) 二、pwn58 三、pwn59(64位 无限制) 四、pwn60(入门难度shellcode) 前言 往前写了几道题,与shellcode有关,关于shellc…...
数据结构 1-2 线性表的链式存储-链表
1 原理 顺序表的缺点: 插入和删除移动大量元素数组的大小不好控制占用一大段连续的存储空间,造成很多碎片 链表规避了上述顺序表缺点 逻辑上相邻的两个元素在物理位置上不相邻 头结点 L:头指针 头指针:链表中第一个结点的存储…...
ArcGIS Pro进行坡度与坡向分析
在地理信息系统中,坡度分析是一项至关重要的空间分析方法,旨在精确计算地表或地形的坡度,为地形特征识别、土地资源规划、环境保护、灾害预警等领域提供科学依据。本文将详细介绍如何利用ArcGIS Pro这一强大的地理信息系统软件,进…...
My first Android application
界面元素组成: 功能代码: /*实现功能:当输入内容后,欢迎文本发生相应改变,并清除掉文本域内容当未输入任何内容时,弹出提示文本以警告用户*/val greetingText findViewById<TextView>(R.id.printer)…...
ZLMediaKi集群设置
要在集群环境中部署 ZLMediaKit,您可以按照以下步骤进行操作。ZLMediaKit 是一个高性能的流媒体服务器,支持 RTMP、RTSP、HLS 等协议。以下是一个详细的集群部署方案: ### 1. 环境准备 - **服务器**:准备多台服务器,…...
Docker基础实践与应用举例
Docker 是一个轻量级容器化平台,通过将应用及其依赖打包到容器中,实现快速部署和环境一致性。以下是 Docker 的实践与应用场景举例,结合具体操作步骤: 一、基础实践 1. 快速启动一个容器 # 运行一个Nginx容器,映射宿…...
Innovus中快速获取timing path逻辑深度的golden脚本
在实际项目中我们经常会遇到一条timing path级数特别多,可能是一两页都翻不完。此时,我们大都需要手工去数这条path上到底有哪些是设计本身的逻辑,哪些是PR工具插入的buffer和inverter。 数字IC后端手把手培训教程 | Clock Gating相关clock …...
百度AI图片助手,免费AI去水印、画质修复、画面延展以及局部替换
最近,要是你常用百度图片,可能已经发现了它新添的一个超实用功能——百度AI图片助手。但很多朋友不知道它的入口地址,我们今天给大家分享一下。 这个功能的出现,在图片编辑修改方面带来了极大便利,它涵盖了AI去水印、…...
【前端】Axios AJAX Fetch
不定期更新,建议关注收藏点赞。 目录 AxiosAJAXCORS 允许跨域请求 Fetch Axios axios 是一个基于 Promise 的 JavaScript HTTP 客户端,用于浏览器和 Node.js 中发送 HTTP 请求。它提供了一个简单的 API 来发起请求,并处理请求的结果。axios …...
测试面试题:以一个登录窗口为例,设计一下登录界面测试的思路和方法
在测试登录窗口时,可以从 表单测试、 逻辑判断和 业务流程三个方面设计测试思路和方法。以下是一个详细的测试方案: 1. 表单测试 表单测试主要关注输入框、按钮等UI元素的正确性和用户体验。 测试点: 输入框测试 用户名和密码输入框是否正常显示。输入框是否支持预期的字符类…...
Android之图片保存相册及分享图片
文章目录 前言一、效果图二、实现步骤1.引入依赖库2.二维码生成3.布局转图片保存或者分享 总结 前言 其实现在很多分享都是我们自定义的,更多的是在界面加了很多东西,然后把整个界面转成图片保存相册和分享,而且现在分享都不需要第三方&…...
EX_25/2/24
写一个三角形类,拥有私有成员 a,b,c 三条边 写好构造函数初始化 abc 以及 abc 的set get 接口 再写一个等腰三角形类,继承自三角形类 1:写好构造函数,初始化三条边 2:要求无论如何,等腰三角形类对象&#x…...
ElasticSearch公共方法封装
业务场景 1、RestClientBuilder初始化(同时支持单机与集群) 2、发送ES查询请求公共方法封装(支持sql、kql、代理访问、集群访问、鉴权支持) 3、判断ES索引是否存在(/_cat/indices/${indexName}) 4、判断ES…...
JVM之JVM的组成
Java 虚拟机(JVM)是 Java 程序的运行核心,它主要由类加载系统、运行时数据区、执行引擎和本地方法接口这几个关键部分组成。 类加载系统(Class Loading System) 类加载系统负责在程序运行时动态地将 Java 类加载到 J…...
贪心算法
int a[1000], b5, c8; swap(b, c); // 交换操作 memset(a, 0, sizeof(a)); // 初始化为0或-1 引导问题 为一个小老鼠准备了M磅的猫粮,准备去和看守仓库的猫做交易,因为仓库里有小老鼠喜欢吃的五香豆,第i个房间有J[i] 磅的五香豆…...
Linux下安装中文输入法总结
Linux下安装中文输入法总结_linux 微软拼音-CSDN博客文章浏览阅读4.2w次,点赞21次,收藏92次。众所周知,fcitx和ibus是两款很好用的Linux中文输入法框架。下面来说一下其安装方法以及会踩的坑。首先fcitx和ibus是不能共存的,两者只…...
人工智能(AI):科技新纪元的领航者
摘要 人工智能(AI)作为当今科技领域最具变革性的力量之一,正以惊人的速度重塑着我们的世界。本文旨在全面且专业地介绍人工智能,涵盖其定义、发展历程、关键技术、应用领域、面临的挑战以及未来展望等方面,以期为读者…...
c3p0、Druid连接池+工具类 Apache-DbUtils (详解!!!)
数据库连接池是在应用程序启动时创建一定数量的数据库连接,并将这些连接存储在池中。当应用程序需要与数据库通信时,它可以向池中请求一个连接,使用完后将连接归还给池,而不是关闭连接。这样可以减少创建和关闭连接的开销…...
鸿蒙开发深入浅出03(封装通用LazyForEach实现懒加载)
鸿蒙开发深入浅出03(封装通用LazyForEach实现懒加载) 1、效果展示2、ets/models/BasicDataSource.ets3、ets/models/HomeData.ets4、ets/api/home.ets5、ets/pages/Home.ets6、ets/views/Home/SwiperLayout.ets7、后端代码 1、效果展示 2、ets/models/Ba…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
【堆垛策略】设计方法
堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...

