unity画布3种渲染模式
在 Unity 的 Canvas(画布) 组件中,Render Mode(渲染模式)决定了 UI 元素在场景中的空间形态、渲染方式以及与摄像机的关联。共有三个选项,分别适用于不同的 UI 需求:
1. Screen Space - Overlay(屏幕空间 - 叠加)
这是 默认的、最常用的模式,适用于大多数 2D 游戏的标准 HUD(血条、分数、按钮等)。
含义:Canvas 会直接绘制在屏幕最上层,完全忽略 3D 场景中的物体和摄像机设置。
特点:
UI 始终面向屏幕,固定在屏幕坐标上(如左上角、正中央)。
不需要摄像机来渲染 UI(Camera 选项会变灰)。
3D 物体、粒子特效等永远被 UI 遮挡(除非使用 Sprite Mask 或特定 Shader 技巧)。
性能通常较好,因为省去了 3D 空间转换。
适用场景:主菜单、暂停界面、玩家血量/弹药 UI、手机游戏的操作按钮。
2. Screen Space - Camera(屏幕空间 - 摄像机)
此模式将 UI 放置在摄像机视锥体(View Frustum)内的一段固定距离处。
含义:UI 依然看起来是“贴在屏幕”上的,但实际上它是位于世界空间中的一个平面,由指定的 Render Camera 进行渲染。
特点:
必须指定一个 Render Camera(通常是 Main Camera)。
UI 平面距离摄像机的位置由 Plane Distance 控制。
支持 3D 物体穿插:如果场景中的一个 3D 模型(如角色、特效)离摄像机比 Plane Distance 更近,它会遮挡 UI;反之 UI 会遮挡它。
受摄像机设置影响(如摄像机 Viewport Rect 视口裁剪、后处理效果等)。
适用场景:
需要 3D 模型“挡住”部分 UI 的效果(例如角色走近镜头时挡住血条)。
需要 UI 受摄像机后处理(Post-processing)影响时。
VR 开发中有时也会用到此模式配合特定设置。
3. World Space(世界空间)
此模式下,Canvas 不再像“贴纸”一样跟着屏幕走,而是一个真正的 3D 对象。
含义:Canvas 被放置在世界坐标系中,可以像普通游戏物体一样移动、旋转、缩放。
特点:
不再固定在屏幕上,而是存在于 3D 场景里。
需要通过 Rect Transform 来调整其大小、位置和角度。
可以被 3D 物体遮挡,也可以遮挡 3D 物体,取决于空间位置关系。
通常需要 Event Camera(事件相机)来响应鼠标/触摸交互。
适用场景:
名称头顶血条(跟随 NPC/玩家上方,随距离变小)。
互动面板(如靠近一台机器时出现的操作屏)。
VR/AR 中的悬浮菜单或世界贴画。
需要透视效果(Perspective)的 UI,即远小近大。
浙公网安备 33010602011771号