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

Unity中,Canva的三种渲染模式

在 Unity 中,Canvas 组件的 渲染模式(Render Mode)决定了 UI 元素如何渲染在屏幕上。不同的渲染模式有不同的用途和表现,主要有三种模式:

  1. 屏幕空间 - 覆盖(Screen Space - Overlay)
  2. 屏幕空间 - 摄像机(Screen Space - Camera)
  3. 世界空间(World Space)

1. 屏幕空间 - 覆盖(Screen Space - Overlay)

解释:
  • 屏幕空间 - 覆盖 是默认的渲染模式。在这种模式下,所有 UI 元素会直接渲染在屏幕的 2D 层级上,不考虑任何 3D 摄像机的视角。
  • 这种模式下,Canvas 会直接覆盖整个屏幕,无论相机如何移动,UI 总是始终显示在屏幕上,不受 3D 世界中的物体或相机位置影响。
特点:
  • UI 元素始终覆盖在屏幕上(前景)。
  • 不会受相机的影响。
  • 适合 显示一些全局的 UI 元素,如主菜单、得分、血条等。
示例:
  • 常见的 UI 元素:HUD(Heads Up Display),如得分、时间、生命值等,通常使用这个模式。
  • UI 元素会始终以相同的大小和位置显示在屏幕上,而不考虑 3D 世界中的物体。
优点:
  • 性能较好,因为不需要考虑相机的视角。
  • 非常适合传统的 2D UI。

2. 屏幕空间 - 摄像机(Screen Space - Camera)

解释:
  • 屏幕空间 - 摄像机 模式仍然将 UI 渲染在屏幕上,但它依赖于一个指定的摄像机来进行渲染。在这种模式下,UI 会在摄像机的视野中渲染,而不是简单地覆盖整个屏幕。
  • 这意味着你可以指定一个摄像机来渲染 Canvas 中的 UI 元素,UI 会根据该摄像机的视角和位置来计算其显示方式。
特点:
  • UI 元素的位置会受到摄像机视角的影响,但它们仍然位于屏幕空间(即与屏幕坐标系统一致)。
  • 你需要指定一个摄像机来渲染 Canvas。通常用于需要根据某个摄像机来渲染 UI 元素的情况。
  • 适合需要渲染在特定相机视角下的 UI(例如,3D 游戏中的 UI,或者在多个摄像机环境下显示 UI)。
示例:
  • 例如,在一个 3D 游戏中,你可能希望 UI 元素随着主摄像机的移动而变化。
  • 在第一人称射击游戏中,UI 元素(如血条、弹药计数)需要与玩家的视角相关联,而不是总是显示在固定的位置。
优点:
  • 可以将 UI 元素绑定到特定的摄像机,适用于多摄像机场景或 3D 场景中的 UI。
  • 适用于需要相机视角影响的 UI 元素(例如,某个摄像机的 HUD、投影效果等)。
缺点:
  • 需要指定摄像机来渲染 UI。
  • 由于涉及相机,可能需要更多的计算资源。

3. 世界空间(World Space)

解释:
  • 世界空间 模式让 Canvas 成为场景中的 3D 对象,它将 UI 元素渲染在 3D 世界中,而不是屏幕空间中。
  • 在这种模式下,Canvas 的位置、旋转和缩放都可以根据世界坐标进行设置。UI 元素变得类似于 3D 对象,可以在世界空间中与其他 3D 对象交互。
特点:
  • UI 元素会被渲染成 3D 对象,因此可以在 3D 空间中移动、旋转和缩放。
  • UI 元素可以放置在 3D 场景中,和其他 3D 对象互动,例如浮动在某个物体上方,或者作为一个交互式物体存在。
  • 适用于想要在 3D 世界中显示 UI 元素的场景,例如 VR(虚拟现实)、AR(增强现实)、或者 3D 游戏中的界面元素。
示例:
  • 在 VR 中,UI 元素通常使用 世界空间 模式,这样它们可以位于玩家的视野中,且可以根据玩家的位置调整大小。
  • 在 3D 游戏中,显示在特定物体(如敌人或商店)附近的 UI(例如提示、血条)可以使用 世界空间 Canvas。
优点:
  • UI 元素作为 3D 对象,可以与其他 3D 对象互动。
  • 可以创建更沉浸的体验(例如 VR 游戏中的 UI 元素)。
缺点:
  • 性能可能较差,尤其是在有大量 UI 元素的情况下。
  • UI 元素需要手动管理位置、缩放等,通常需要更多的计算和管理。

总结:三种渲染模式的区别

渲染模式说明使用场景
屏幕空间 - 覆盖 (Overlay)UI 元素直接覆盖在屏幕上,与相机无关。适用于传统的 2D UI(得分、菜单、HUD 等)。
屏幕空间 - 摄像机 (Camera)UI 元素根据指定的摄像机视角进行渲染。适用于 3D 游戏中,UI 根据摄像机视角变化。
世界空间 (World Space)UI 元素作为 3D 对象放置在世界空间中。适用于 VR/AR 或者 3D 游戏中的互动式 UI。

选择哪种渲染模式,取决于你的 UI 元素是如何与场景交互的,以及你希望 UI 元素如何表现。


http://www.kler.cn/a/420871.html

相关文章:

  • MySQL篇—通过官网下载linux系统下多种安装方式的MySQL社区版软件
  • 「Mac畅玩鸿蒙与硬件36」UI互动应用篇13 - 数字滚动抽奖器
  • BA是什么?
  • oracle数据库日常操作
  • Redis开发05:使用stackexchange.redis库对redis进行增删改查
  • avcodec_alloc_context3,avcodec_open2,avcodec_free_context,avcodec_close
  • 数字与字母互换python
  • golang 并发编程,每日一题
  • chrome使用问题记录
  • 【CSP CCF记录】202305-1第30次认证 重复局面
  • 服务器如何划分空间?
  • 【IC验证】systemverilog_函数和任务
  • 杨辉三角形-多语言
  • 气象数据下载服务平台(二)
  • 超文本协议之HTML(泷羽sec)
  • Mysql读写分离分库分表
  • MySQL中的幻读问题
  • Linx下自动化之路:JDK1.8 安装包一键安装脚本实现离线极速部署
  • 高校数字化运营平台解决方案:构建统一的服务大厅、业务平台、办公平台,助力打造智慧校园
  • alpaca 和 sharegpt微调数据格式区别
  • 「Mac畅玩鸿蒙与硬件41」UI互动应用篇18 - 多滑块联动控制器
  • 汽车用聚芳醚砜行业全面而深入的分析
  • WPF从本地文件加载界面
  • Modbus rtu转profibusDP接电机保护器快速配置案例
  • 【代码随想录|贪心算法03】
  • 【Trick】adb指令运行时出现 Error: Activity class {xxx} does not exist.