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决定显示,覆盖的优先级

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

    如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    JavaWeb开发入门:从前端到后端的完整流程解析

    一、JavaWeb简介 1、C/S 客户端/服务器结构 2、B/S(Browser/Server,浏览器/服务器)结构 二、开发环境搭建 1. 安装Tomcat--一个小型的web容器。 2. 在eclipse中配置tomcat创建项目 三、JavaWeb开发流程 1. 前端页面设计 2. 后端逻辑…

    Linux 常见命令全解析

    一、文件操作命令 1. ls ls是列出目录内容的命令。简单输入ls,会展示当前目录下的文件和目录列表。想要获取更详细的信息,比如文件权限、所有者、大小、修改时间等,使用ls -l。若要显示所有文件,包括以点(.&#xff…

    unordered_set和unordered_map的使用

    Hello,今天我来为大家介绍一下前几年才刚刚新出的两个容器——unordered_map和unordered_set,这两个容器属于是map系列和set系列中的一种,和map/set不同的是它们的底层,map/set的底层是红黑树,而unordered_map/unorder…

    【每日八股】计算机网络篇(一):概述

    OSI 的 7 层网络模型? OSI(Open Systems Interconnection,开放互联系统)是由国际标准化组织(ISO)提出的一种网络通信模型。 自上而下,OSI 可以被分为七层,分别是:应用层…

    DeepSeek 提示词:高效的提示词设计

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

    HarmonyOS简

    文章为官方教程以及自己的部分理解,用于上下班的查看学习。官方视频教程地址:HarmonyOS应用开发者基础认证-华为开发者学堂 (huawei.com) 应用发开的机遇、挑战和趋势 带来的问题 问题:万物互联,智能设备从几十亿手机拓展到数百…

    conda 基本命令

    1、查询当前所有的环境 conda env list 2、创建虚拟环境 conda create -n 环境名 [pythonpython版本号] 其中[pythonpython版本号]可以不写 conda create -n test python3.12 我们输入conda env list看到我们的环境创建成功了,但是发现他是创建在我们默认的C盘的…

    PythonWeb开发框架—Django之DRF框架的使用详解

    1.安装依赖包 pip install djangorestframework 2.配置应用 在settings.py中的INSTALLED_APPS中添加rest_framework应用 3.创建序列化器 序列化器是用来操作models的 第一步:定义models ##models.pyfrom django.db import models# Create your models here.cl…

    硬件加速与技术创新双轮驱动:DeepSeek和ChatGPT性能进阶的未来蓝图

    🎁个人主页:我们的五年 🔍系列专栏:Linux网络编程 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 ​ Linux网络编程笔记: https://blog.cs…

    让子弹飞的DeepSeek火锅诗和《软件方法》

    DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 我在知乎上面看到了这样的一个问题:DeepSeek写出过哪些惊艳的诗词? 有一位答主讲了他以《让子弹飞》作为素材让DeepSeek写诗的故事:要有风&#xf…

    输入搜索、分组展示选项、下拉选取,el-select 实现:即输入关键字检索,返回分组选项,选取跳转到相应内容页 —— VUE 项目-全局模糊检索

    后端数据代码写于下一篇:输入搜索、分组展示选项、下拉选取,全局跳转页,el-select 实现 —— 后端数据处理代码,抛砖引玉展思路 【效果图】:分组展示选项 >【提供界面操作体验】 【录制效果视频展示】&#xff1a…

    【Linux】初识进程概念与 fork 函数的应用

    Linux相关知识点可以通过点击以下链接进行学习一起加油!初识指令指令进阶权限管理yum包管理与vim编辑器GCC/G编译器make与Makefile自动化构建GDB调试器与Git版本控制工具Linux下进度条冯诺依曼体系与计算机系统架构 进程是操作系统中资源分配和调度的核心单位&#…

    【linux】自主shell编写

    🔥个人主页:Quitecoder 🔥专栏:linux笔记仓 目录 01.输出命令行02.获取用户命令字符串03.命令行字符串分割04.执行命令05.细节修改检查是否为内建命令 完整代码: 01.输出命令行 完成对一个shell 的编写,首…

    小程序高度问题背景scss

    不同的机型&#xff0c;他的比例啥的都会不一样&#xff0c;同样的rpx也会有不同的效果。所以这里选择了取消高度。 <view class"box-border" :style"{padding-top: ${navHeight}px,}"><!-- 已登录 --><view v-if"userStore.userInfo&…

    DeepSeek 15天指导手册——从入门到精通 PDF(附下载)

    DeepSeek使用教程系列--DeepSeek 15天指导手册——从入门到精通pdf下载&#xff1a; https://pan.baidu.com/s/1PrIo0Xo0h5s6Plcc_smS8w?pwd1234 提取码: 1234 或 https://pan.quark.cn/s/2e8de75027d3 《DeepSeek 15天指导手册——从入门到精通》以系统化学习路径为核心&…

    element-ui的组件使用

    1. 安装 Element UI&#xff08;在文件夹最上面输入cmd进入dos窗口&#xff0c;然后输入安装指令 npm install element-ui --save&#xff09; 2.在main.js文件全局引入(main.js文件负责 全局注册 )&#xff0c;在该文件注册的所有组件在其他文件都能直接调用&#xff0c;一般…

    List的模拟实现(2)

    前言 上一节我们讲解了list的基本功能&#xff0c;那么本节我们就结合底层代码来分析list是怎么实现的&#xff0c;那么废话不多说&#xff0c;我们正式进入今天的学习&#xff1a;&#xff09; List的底层结构 我们先来看一下list的底层基本结构&#xff1a; 这里比较奇怪的…

    RT-Thread+STM32L475VET6实现红外遥控实验

    文章目录 前言一、板载资源介绍二、具体步骤1. 确定红外接收头引脚编号2. 下载infrared软件包3. 配置infrared软件包4. 打开STM32CubeMX进行相关配置4.1 使用外部高速时钟&#xff0c;并修改时钟树4.2 打开定时器16(定时器根据自己需求调整)4.3 打开串口4.4 生成工程 5. 打开HW…

    速通HTML

    HTML基础 1.快捷键 基于VS Code记录编写过程中常用的快捷键 功能快捷键生成HTML基本骨架!回车保存代码CtrlS在浏览器运行代码AltB注释Ctrl/缩进Tab取消缩进ShiftTab收起侧边栏CtrlB 先保存&#xff0c;再在浏览器运行才能刷新 2.标签 标签作用h1——h6双标签标题标签&#…

    WebXR教学 01 基础介绍

    什么是WebXR&#xff1f; 定义 XR VR AR Web上使用XR技术的API WebXR 是一组用于在 Web 浏览器中实现虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;应用的技术标准。它由 W3C 的 Immersive Web 工作组开发&#xff0c;旨在提供跨设备的沉浸式体验…