unity学习笔记

news/2024/4/28 2:26:05/文章来源:https://blog.csdn.net/2301_79022588/article/details/136977713

一、Canvas

Canvas(画布)是 Unity 中用于创建用户界面(UI)的主要组件之一。Canvas 提供了一个用于呈现 2D 和 3D UI 元素的容器,任何一个,并且负责管理这些元素的渲染顺序、相对位置和缩放。下面是关于 Canvas 组件的详细介绍:

1.渲染模式(Render Mode)

Canvas 有三种不同的渲染模式:

Screen Space - Overlay

Canvas自动填充整个屏幕,且一直在最前方,遮盖其他,是最常用的画布渲染模式。

在这种模式下,Canvas 被缩放以适合屏幕,然后直接渲染而不参考场景或相机(即使场景中根本没有相机也会渲染UI)如果屏幕的大小或分辨率发生变化,则UI将自动重新缩放以适应。UI将绘制在任何其他图形(例如相机视图)之上。、

这个即使摄像机里已经看不到canvas,但是canvas还是会显示出来。

画布将覆盖在屏幕上,UI 元素将在最上层呈现,不受相机的影响。

Screen Space - Camera

Canvas自动填充指定摄像机的整个屏幕,但其他游戏对象可以在它之前显示,根据和指定摄像机的距离可以调整是否遮挡Canvas。

在这种模式下,Canvas的渲染就像是在给定相机前面一定距离的平面对象上绘制的一样。UI的屏幕尺寸不随距离变化,因为它总是重新缩放以完全适合相机视锥体。如果屏幕的大小或分辨率或相机视锥体发生变化,则UI将自动重新缩放以适应。任何3D对象在场景中,比UI平面更靠近相机的场景将渲染在UI的前面,而平面后面的对象将被遮挡。

World Space:画布以世界空间的方式存在,可以像其他游戏对象一样放置在场景中,并且 UI 元素的位置和大小是基于世界坐标的。不会自动给填充。

此模式将UI渲染为场景中的平面对象。Canvas的大小可以使用其Rect Transform进行设置,但其屏幕大小将取决于相机的视角和距离。其他场景对象可以从Canvas后面、穿过或前面经过。
 

2. UI 缩放模式(UI Scale Mode)

Canvas 的 UI 缩放模式决定了 UI 元素是如何随着屏幕分辨率变化而缩放的。

Constant Pixel Size:UI 元素将以像素为单位进行缩放,不随屏幕分辨率变化而变化。

Scale With Screen Size:UI 元素将以百分比的方式进行缩放,以确保它们在不同分辨率下保持相同的大小。

Constant Physical Size:UI 元素将以物理尺寸(如英寸)进行缩放,可以用于实现在不同显示设备上保持相同的物理尺寸。

3. Canvas Scaler

Canvas Scaler 是用于调整 UI 元素大小的组件。它的作用是确保 UI 在不同分辨率下的表现一致性。你可以根据不同的 UI 缩放模式选择合适的 Canvas Scaler 配置。

4. Sorting Layers 和 Order in Layer

Canvas 允许你使用 Sorting Layers 和 Order in Layer 属性来控制 UI 元素的渲染顺序。通过这些属性,你可以控制 UI 元素之间的叠放顺序。

5.orting Order(排序顺序)

定义 Canvas 在同一 Sorting Layer 中的渲染顺序。较高的 Sorting Order 值会使 Canvas 上的元素显示在较低值之上。

二、UI适配

UI适配是确保UI元素在不同的屏幕尺寸和分辨率下能够正确显示和布局的过程。在Unity中,可以通过以下几种方法来实现UI的适配:

1. 使用Canvas Scaler组件
   Canvas Scaler组件允许你根据屏幕尺寸自动调整UI元素的大小。可以选择不同的UI缩放模式,包括Constant Pixel Size(像素大小不变)、Scale With Screen Size(随屏幕尺寸缩放)、和Constant Physical Size(物理大小不变)。通过设置Canvas Scaler组件的属性,你可以确保UI在不同屏幕上保持一致的大小和比例。

2. 使用Anchors进行布局
   在Unity的UI系统中,可以使用Anchors(锚点)来定义UI元素相对于父容器的位置和大小。通过设置UI元素的Anchors,可以确保它们在不同分辨率下相对于屏幕或父容器的位置和大小保持一致。

3. 使用Layout Components进行自动布局
   Unity提供了一系列布局组件,如Horizontal Layout Group、Vertical Layout Group、Grid Layout Group等,它们可以自动调整子对象的位置和大小,以适应父容器的大小。通过将UI元素放置在布局组件中,可以确保它们在不同屏幕尺寸下自动布局和适配。

4. 使用AspectRatioFitter组件
   AspectRatioFitter组件允许你控制UI元素的宽高比,以确保它们在不同屏幕尺寸下保持一致的宽高比。你可以选择不同的缩放模式,如Fit In Parent(适应父容器)、Envelop Parent(包裹父容器)、或者Aspect Ratio(保持宽高比)等。

5. 使用代码进行适配
   在一些情况下,可能需要使用代码来实现更复杂的UI适配逻辑。通过编写脚本,可以根据屏幕尺寸和分辨率来调整UI元素的位置、大小和布局,以确保它们在不同的设备上都能够正确显示和布局。

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

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

相关文章

浙江IGM机器人K5控制柜维修需要注意哪些问题?

IGM机器人K5控制柜常见故障及维修方法 1、电源故障: 表现为IGM机器人K5控制柜不能开机或突然断电。 检查:检查电源线是否连接良好,有无破损;检查电源模块的输出电压是否正常; 维修方法:如电源模块损坏&…

主流公链 - Filecoin

探索Filecoin:去中心化存储网络 1. Filecoin简介 Filecoin是一个去中心化的存储网络,旨在通过区块链技术实现全球性的分布式文件存储和检索市场。Filecoin允许用户将文件存储在网络中的节点上,并通过加密、分片和复制等技术保证数据的安全性…

企业微信主体变更的公证书怎么办?

企业微信变更主体有什么作用? 企业微信推出到现在已经很多年了,但是之前一直不支持主体变更。于是很多公司好不容易积累的客户,因为换了营业执照经营,原来的客户就都只能流失了。近期企业微信终于放开了变更主体的功能&#xff0c…

双系统安装02--在已有win10基础上安装统信UOS

原文链接:https://mp.weixin.qq.com/s/wVRG3MKZYIF5rHBVc3YADg Hello,大家好啊!继昨天关于在一台电脑上全新安装Windows 11和统信UOS桌面操作系统1060的双系统教程之后,今天我将为大家介绍如何在已有的Windows 10系统上安装统信UO…

鸿蒙OS开发实例:【工具类封装-http请求】

import http from ohos.net.http; import promptAction from ohos.promptAction; 封装HTTP接口请求类,提供格式化的响应信息输出功能。 使用 DevEco Studio 3.1.1 Release 及以上版本,API 版本为 api 9 及以上。 示例: import { MyHttpUtil…

MySQL 索引:索引为什么使用 B+树?

Hash 索引不支持顺序和范围查询; 二叉查找树(BST):解决了排序的问题,极端情况下可能会退化成线性链表,查询效率急剧下降; 平衡二叉树(AVL) :通过旋转解决了平衡的问题,但是旋转操作效率太低&am…

Flume超级无敌详细讲解

简介 概述 Flume本身是由Cloudera公司开发的后来贡献给了Apache的一套针对日志进行收集(collecting)、汇聚(aggregating)和传输(moving)的分布式机制。 图-1 Flume图标 Flume本身提供了较为简易的流式结构,使得开发者能够较为简易和方便的搭建Flume的流动模型。 图-2 Flume…

【Pytorch入门】小土堆PyTorch入门教程完整学习笔记(详细笔记并附练习代码 ipynb文件)

小土堆PyTorch入门教程笔记 最近在观看PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】顺便做点笔记,方便回看,同时也希望记录的笔记能够帮助到更多在入门的小伙伴~ 【注】仅记录个人觉得重要的知识&#xff0c…

在线接口文档预言方案

在线接口文档预言方案 要求: ​ 支持自动生成接口文档 ​ 能够支持在线测试(http,websocket) ​ 对代码没有侵入性 一、目前涉及的相关技术收集 sudo apt update #更新数据 sudo apt upgrade #更新软件 sudo apt install openssh-server #下载安装…

Qt教程 — 3.7 深入了解Qt 控件: Layouts部件

目录 2 如何使用Layouts部件 2.1 QBoxLayout组件-垂直或水平布局 2.2 QGridLayout组件-网格布局 2.3 QFormLayout组件-表单布局 在Qt中,布局管理器(Layouts)是用来管理窗口中控件位置和大小的重要工具。布局管理器可以确保窗口中的控件在…

鸿蒙开发图形图像:【图形子系统】

图形子系统 图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS应用框架满足硬件资源较小的物联网设备或者构建基于标准OS的应用框架满足富设备的OpenHarmony系统应用开发。 1.1 轻量系统 简介 图形子系统主要包括…

武忠祥《660题》高效刷题包+资料分享

660题的难度书虽然比较难,对于基础的考察比较深入,所以,有没有一种可能,做题太慢,是因为基础不好导致的! 所以再继续做下去,就没有什么意义了,因为这就像是用一把钝刀去砍树&#x…

Linux 反引号、单引号以及双引号的区别

1.单引号—— 单引号中所有的字符包括特殊字符($,,和\)都将解释成字符本身而成为普通字符。它不会解析任何变量,元字符,通配符,转义符,只被当作字符串处理。 2.双引号——" 双引号,除了$,…

spring boot3自定义注解+拦截器+Redis实现高并发接口限流

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途 目录 写在前面 内容简介 实现思路 实现步骤 1.自定义限流注解 2.编写限流拦截器 3.注册拦截器 4.接口限流测试 写在前…

汽车ECU的虚拟化技术(四) -- 对MCU虚拟化实现难点的思考

目录 1.OEM面临的难点 2.Hypervisor的难点思考 2.1 VMs部署到物理内核上的实现方式 2.2 VM调度机制 3.小结 1.OEM面临的难点 为什么汽车ECU在逐渐倡导虚拟化,主要原因是整车电子电气架构从分布式往集中式演进,OEM希望将以前多个ECU的功能聚合到一个…

腾讯云服务器新购、续费、升级如何领取优惠券?

腾讯云作为国内领先的云计算服务提供商,一直致力于为用户提供高效、稳定、安全的云服务。为了吸引广大用户上云,腾讯云经常推出各种优惠活动,其中就包括服务器新购、续费、升级的优惠券。本文将为大家详细介绍如何领取腾讯云服务器优惠券&…

将本地项目上传至码云

1.打开git,然后进入到项目目录 2.进入到项目目录,然后进行git的初始化 成功后本地项目目录内会多出一个“.git”文件: 指令介绍: git init -- 建立本地仓库 3.在码云上创建仓库,名为“MyMoney” 创建过程参考&…

2024最新Win系统下VSCode下载安装与配置C/C++教程

2024最新Win系统下VSCode下载安装与配置C/C教程 文章目录 2024最新Win系统下VSCode下载安装与配置C/C教程1、下载安装VSCode2、安装运行时环境GCGC的环境配置 3、安装VSCode插件4、配置程序调试环境4.1确定文件存储路径4.2新建文件夹【.vscode】4.3在.vscode文件夹里新建四个配…

【前端学习——js篇】5.事件循环

详细:https://github.com/febobo/web-interview 5.事件循环 js是一种单线程语言,同一时间内只能做一件事情,为了避免单线程阻塞的方法就是事件循环。 在javascript当中,所有的任务都可以分为: 同步任务:按…

Linux 系统 docker搭建LNMP环境

1、安装nginx docker pull nginx (默认安装的是最新版本) 2、运行nginx docker run --name nginx -p 80:80 -d nginx:latest 备注:--name nginx 表示容器名为 nginx -d 表示后台运行 -p 80:80 表示把本地80端口绑定到Nginx服务端的 80端口 nginx:lates…