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

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

    界面元素组成&#xff1a; 功能代码&#xff1a; /*实现功能&#xff1a;当输入内容后&#xff0c;欢迎文本发生相应改变&#xff0c;并清除掉文本域内容当未输入任何内容时&#xff0c;弹出提示文本以警告用户*/val greetingText findViewById<TextView>(R.id.printer)…...

    ZLMediaKi集群设置

    要在集群环境中部署 ZLMediaKit&#xff0c;您可以按照以下步骤进行操作。ZLMediaKit 是一个高性能的流媒体服务器&#xff0c;支持 RTMP、RTSP、HLS 等协议。以下是一个详细的集群部署方案&#xff1a; ### 1. 环境准备 - **服务器**&#xff1a;准备多台服务器&#xff0c;…...

    Docker基础实践与应用举例

    Docker 是一个轻量级容器化平台&#xff0c;通过将应用及其依赖打包到容器中&#xff0c;实现快速部署和环境一致性。以下是 Docker 的实践与应用场景举例&#xff0c;结合具体操作步骤&#xff1a; 一、基础实践 1. 快速启动一个容器 # 运行一个Nginx容器&#xff0c;映射宿…...

    Innovus中快速获取timing path逻辑深度的golden脚本

    在实际项目中我们经常会遇到一条timing path级数特别多&#xff0c;可能是一两页都翻不完。此时&#xff0c;我们大都需要手工去数这条path上到底有哪些是设计本身的逻辑&#xff0c;哪些是PR工具插入的buffer和inverter。 数字IC后端手把手培训教程 | Clock Gating相关clock …...

    百度AI图片助手,免费AI去水印、画质修复、画面延展以及局部替换

    最近&#xff0c;要是你常用百度图片&#xff0c;可能已经发现了它新添的一个超实用功能——百度AI图片助手。但很多朋友不知道它的入口地址&#xff0c;我们今天给大家分享一下。 这个功能的出现&#xff0c;在图片编辑修改方面带来了极大便利&#xff0c;它涵盖了AI去水印、…...

    【前端】Axios AJAX Fetch

    不定期更新&#xff0c;建议关注收藏点赞。 目录 AxiosAJAXCORS 允许跨域请求 Fetch Axios axios 是一个基于 Promise 的 JavaScript HTTP 客户端&#xff0c;用于浏览器和 Node.js 中发送 HTTP 请求。它提供了一个简单的 API 来发起请求&#xff0c;并处理请求的结果。axios …...

    测试面试题:以一个登录窗口为例,设计一下登录界面测试的思路和方法

    在测试登录窗口时,可以从 表单测试、 逻辑判断和 业务流程三个方面设计测试思路和方法。以下是一个详细的测试方案: 1. 表单测试 表单测试主要关注输入框、按钮等UI元素的正确性和用户体验。 测试点: 输入框测试 用户名和密码输入框是否正常显示。输入框是否支持预期的字符类…...

    Android之图片保存相册及分享图片

    文章目录 前言一、效果图二、实现步骤1.引入依赖库2.二维码生成3.布局转图片保存或者分享 总结 前言 其实现在很多分享都是我们自定义的&#xff0c;更多的是在界面加了很多东西&#xff0c;然后把整个界面转成图片保存相册和分享&#xff0c;而且现在分享都不需要第三方&…...

    EX_25/2/24

    写一个三角形类&#xff0c;拥有私有成员 a,b,c 三条边 写好构造函数初始化 abc 以及 abc 的set get 接口 再写一个等腰三角形类&#xff0c;继承自三角形类 1&#xff1a;写好构造函数&#xff0c;初始化三条边 2&#xff1a;要求无论如何&#xff0c;等腰三角形类对象&#x…...

    ElasticSearch公共方法封装

    业务场景 1、RestClientBuilder初始化&#xff08;同时支持单机与集群&#xff09; 2、发送ES查询请求公共方法封装&#xff08;支持sql、kql、代理访问、集群访问、鉴权支持&#xff09; 3、判断ES索引是否存在&#xff08;/_cat/indices/${indexName}&#xff09; 4、判断ES…...

    JVM之JVM的组成

    Java 虚拟机&#xff08;JVM&#xff09;是 Java 程序的运行核心&#xff0c;它主要由类加载系统、运行时数据区、执行引擎和本地方法接口这几个关键部分组成。 类加载系统&#xff08;Class Loading System&#xff09; 类加载系统负责在程序运行时动态地将 Java 类加载到 J…...

    贪心算法

    int a[1000], b5, c8; swap(b, c); // 交换操作 memset(a, 0, sizeof(a)); // 初始化为0或-1 引导问题 为一个小老鼠准备了M磅的猫粮&#xff0c;准备去和看守仓库的猫做交易&#xff0c;因为仓库里有小老鼠喜欢吃的五香豆&#xff0c;第i个房间有J[i] 磅的五香豆&#xf…...

    Linux下安装中文输入法总结

    Linux下安装中文输入法总结_linux 微软拼音-CSDN博客文章浏览阅读4.2w次&#xff0c;点赞21次&#xff0c;收藏92次。众所周知&#xff0c;fcitx和ibus是两款很好用的Linux中文输入法框架。下面来说一下其安装方法以及会踩的坑。首先fcitx和ibus是不能共存的&#xff0c;两者只…...

    人工智能(AI):科技新纪元的领航者

    摘要 人工智能&#xff08;AI&#xff09;作为当今科技领域最具变革性的力量之一&#xff0c;正以惊人的速度重塑着我们的世界。本文旨在全面且专业地介绍人工智能&#xff0c;涵盖其定义、发展历程、关键技术、应用领域、面临的挑战以及未来展望等方面&#xff0c;以期为读者…...

    c3p0、Druid连接池+工具类 Apache-DbUtils (详解!!!)

    数据库连接池是在应用程序启动时创建一定数量的数据库连接&#xff0c;并将这些连接存储在池中。当应用程序需要与数据库通信时&#xff0c;它可以向池中请求一个连接&#xff0c;使用完后将连接归还给池&#xff0c;而不是关闭连接。这样可以减少创建和关闭连接的开销&#xf…...

    鸿蒙开发深入浅出03(封装通用LazyForEach实现懒加载)

    鸿蒙开发深入浅出03&#xff08;封装通用LazyForEach实现懒加载&#xff09; 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…...

    linux之kylin系统nginx的安装

    一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

    【位运算】消失的两个数字(hard)

    消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

    LeetCode - 394. 字符串解码

    题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

    Leetcode 3577. Count the Number of Computer Unlocking Permutations

    Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

    Linux简单的操作

    ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

    系统设计 --- MongoDB亿级数据查询优化策略

    系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

    c++ 面试题(1)-----深度优先搜索(DFS)实现

    操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

    论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

    笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

    dify打造数据可视化图表

    一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

    【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

    禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...