热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

浅谈Unity中的Canvas及三种渲染模式

浅谈Unity中的Canvas及三种渲染模式目录浅谈Unity中的Canvas及三种渲染模式橙子前言一、Canvas是什么?二、如何创建Canvas三、Canvas组

浅谈Unity中的Canvas及三种渲染模式


目录

  • 浅谈Unity中的Canvas及三种渲染模式
  • 橙子前言
  • 一、Canvas是什么?
  • 二、如何创建 Canvas
  • 三、Canvas 组件的RenderMode 参数
    • 1.Screen Space - Overlay 模式
    • 2.Screen Space - Camera 模式
    • 3.World Space 模式
  • 四、总结
  • 五、结束语




橙子前言

最近在搞Unity的性能优化,涉及到Canvas这个方面了,想着单独拿出来,给大家讲讲Canvas这个东西,到底是什么,以便于解开新手小白心中的疑惑。
当然,如果你是0基础,就先看看怎么用,此教程对于入门级适用。



提示:以下是本篇文章正文内容,下面案例可供参考


一、Canvas是什么?

Canvas:翻译后的解释为:画布
我理解的是:使用UGUI来进行UI开发,离不开Canvas组件,所有的 UI 元素,要么自己包含 Canvas 组件,要么是 Canvas 组件所在 GameObject 的子节点。


二、如何创建 Canvas

创建Canvas
你在 Hierarchy 视图右击空白处->UI->Canvas可以直接创建一个 Canvas,然后添加其他 UI 元素作为其子节点。


三、Canvas 组件的RenderMode 参数

Canvas 的 RenderMode 参数


1.Screen Space - Overlay 模式

Canvas 覆盖屏幕,且永远覆盖在其它元素的上层,也就是说 UI 会遮挡场景中的其它元素。
Overlay 模式下 UI 总是渲染在3d元素的上面
当 RenderMode 为 Screen Space - Overlay时,Canvas的其它参数包括:


  • Pixel Perfect:UI元素精确到像素对齐,边缘更清晰,但是在UI调整和适配时会有更大的计算量(个人理解)
  • Sort Order:Canvas 的深度。多个 存在多个Canvas时,Sort Order 值更大的Canvas会遮盖住 Sort
    Order 值小的 Canvas
  • 注:多个 Canvas 深度取值相等时,Hierarchy 视图中后面的 Canvas 显示在下,这一点与 UI
    元素(如Image的规则相反)

2.Screen Space - Camera 模式

和 Overlay 模式相仿,Canvas覆盖整个屏幕空间画布也是填满整个屏幕空间。不同之处在于,Canvas 被放置于指定摄像机的前方。
Canvas 被放置在摄像机的前方
这种模式下面 UI 并不一定能渲染在 3d 元素之上
Camera 模式下,3d 元素可能渲染在UI之上


  1. 必须在摄像机的远近平面之间才会被渲染
  2. 即使摄像机是 Perspective 模式,Canvas 距离摄像机的远近依然不会影响其显示大小
  3. 其它3元素可以和 Canvas 产生遮挡关系,距离摄像机更近的元素会遮盖住 Canvas 上面的 UI
  4. 摄像机的缩放/平移/旋转,以及 fov 的变化,不会影响 Canvas 显示结果,Canvas
    永远是放置在距离摄像机视口一定距离的地方,且与摄像机水平视线垂直

Screen Space - Camera 的参数包括:
Screen Space - Camera 模式 Canvas 的参数


  • Pixel Perfect :同 Overlay 模式含义
  • Render Camera :指定的用来渲染 Canvas 的摄像机
  • Plane Distance:Canvas 平面距离摄像机的距离
  • Sorting Layer:指示 Canvas 的深度,可以手动添加。当存在多个模式为 Screen Space 的 Canvas
    时,Sorting Layer 决定了显示的优先级。
  • Order in Layer:多个 Canvas 具有相同的 Sorting Layer 时,根据 Order in Layer
    来确定显示优先级。

3.World Space 模式

此种模式下,Canvas 与场景中其它3D元素没有区别
World space 模式的Canvas 本质上就是3d 元素
此时


  • Canvas 可以调整 RectTransform 的数值
  • 摄像机的平移旋转缩放及fov都会影响 Canvas 的显示
  • 需要 EventCamera 来指定接受事件的摄像机

四、总结


  1. 不同模式的 Canvas之间,Screen Space - Overlay 的 Canvas 永远显示在最前面,Screen Space
    -Camera 和 World 的显示关系决定于 World Canvas 距离摄像机的位置以及 Screen Space - Camera Canvas 的 Plane Distance

  2. 相同的 Screen Space - Overlay Canvas :显示优先级由 Sort Order 确定

  3. 相同的 Screen Space - Camera:显示优先级由 Sorting Layer 和 Order in Layer 确定


五、结束语

不及硅步,无以至千里。
不积小流,无以成江海。
每天进步一点点 谢谢您的观看。

觉得对自己有帮助,欢迎关注、收藏、转发!我们下期再见


推荐阅读
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • GDI+ 进阶指南:深入解析 IGPFont 接口
    本文深入探讨了 GDI+ 中 IGPFont 接口的应用与实现,通过具体的代码示例展示了如何在 Delphi 中使用 GDI+ 进行高质量的文本渲染。文章详细解析了 IGPFont 接口的各项属性和方法,并提供了实用的编程技巧,帮助开发者更好地理解和掌握 GDI+ 的字体处理功能。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 顶新国际PMI集团与美云智数再次携手,共同开启“数智化”采购的新篇章。顶新国际集团作为中国领先的综合食品企业,成立于1958年,旗下品牌包括著名的方便面品牌康师傅、快餐品牌德克士以及开创中国便利店先河的全家FamilyMart。此次合作将借助美云智数在数字化转型领域的专业优势,进一步提升顶新国际的供应链管理效率和智能化水平,推动其在竞争激烈的市场环境中实现可持续发展。 ... [详细]
  • Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战?
    Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战? ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
  • 每日前端实战:148# 视频教程展示纯 CSS 实现按钮两侧滑入装饰元素的悬停效果
    通过点击页面右侧的“预览”按钮,您可以直接在当前页面查看效果,或点击链接进入全屏预览模式。该视频教程展示了如何使用纯 CSS 实现按钮两侧滑入装饰元素的悬停效果。视频内容具有互动性,观众可以实时调整代码并观察变化。访问以下链接体验完整效果:https://codepen.io/comehope/pen/yRyOZr。 ... [详细]
  • Kafka 是由 Apache 软件基金会开发的高性能分布式消息系统,支持高吞吐量的发布和订阅功能,主要使用 Scala 和 Java 编写。本文将深入解析 Kafka 的安装与配置过程,为程序员提供详尽的操作指南,涵盖从环境准备到集群搭建的每一个关键步骤。 ... [详细]
  • Spring Boot 应用中实现观察者模式的深度解析与实践
    在 Spring Boot 应用中,观察者模式是一种常用的设计模式,用于建立对象间的依赖关系。当某一对象的状态发生改变时,所有依赖该对象的对象会自动接收到通知并进行相应的更新。本文将深入探讨观察者模式的实现原理,并通过具体实例展示如何在 Spring Boot 项目中有效应用这一模式,以提高系统的解耦性和可维护性。 ... [详细]
  • 阿里云AI ET担任CEO,与蜻蜓FM猫局长展开深度对话
    阿里云AI ET担任CEO,与蜻蜓FM猫局长展开深度对话 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • 业务团队与独立团队在数据分析领域的效能对比:谁更胜一筹?
    业务团队与独立团队在数据分析领域的效能对比:谁更胜一筹? ... [详细]
  • 双因子安全机制与WiFi万能钥匙的较量:解析其背后的对抗策略
    几乎所有智能手机用户都熟悉类似“WiFi万能钥匙”的应用程序。这款应用凭借庞大的下载量,不仅在各大应用商店中占据显著位置,还长期稳居下载排行榜前列。然而,随着双因子认证等高级安全机制的普及,这类应用面临着前所未有的挑战。本文将深入探讨双因子安全机制与WiFi万能钥匙之间的对抗策略,分析其背后的技术原理和安全风险。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
author-avatar
手机用户2602937435
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有