渲染类型解释
在Unity的通用渲染管线(Universal Render Pipeline, URP)中,有两种类型的摄像机:
- 基础摄像机(Base Camera):
- 基础摄像机是一个通用的摄像机,用于渲染到指定的渲染目标(如屏幕或渲染纹理)。
- 在URP中,要渲染任何内容,场景中至少需要一个基础摄像机。
- 可以在场景中有多个基础摄像机,并且它们可以独立使用,或者作为摄像机堆叠(Camera stacking)的一部分使用。
- 当场景中有一个活动的基础摄像机时,场景视图中的摄像机小工具旁边会出现一个特定的图标。
- 有关Unity在Inspector中为基础摄像机公开的属性,请参见基础摄像机组件参考。
- 叠加摄像机(Overlay Camera):
- 叠加摄像机是在另一个摄像机的输出之上渲染其视图的摄像机。
- 可以使用叠加摄像机创建如3D对象在2D UI中,或车辆中的驾驶舱等效果。
- 要使用叠加摄像机,必须将其与一个或多个基础摄像机结合使用。
如何在Unity编辑器中更改摄像机的类型:
- 在场景中创建或选择一个摄像机。
- 在摄像机检查器中,使用“渲染类型”下拉菜单选择不同类型的摄像机。可以选择“基础”将摄像机更改为基础摄像机,或选择“叠加”将摄像机更改为叠加摄像机。
如何在脚本中更改摄像机的类型:
可以通过设置摄像机的Universal Additional Camera Data组件的renderType属性来在脚本中更改摄像机的类型,如下所示:
csharpvar cameraData = camera.GetUniversalAdditionalCameraData();
cameraData.renderType = CameraRenderType.Base;
简而言之,基础摄像机是用于渲染到特定目标的通用摄像机,而叠加摄像机则用于在另一个摄像机的输出之上渲染内容,从而创建各种视觉效果。
Base Camera
“Base Camera”是URP(Universal Render Pipeline)中的默认相机类型。Base Camera是一个通用相机,用于渲染到指定的渲染目标。
在URP中,要渲染任何内容,您的场景中至少必须有一个Base Camera。一个场景中可以有多个Base Cameras。您可以单独使用Base Camera,也可以将其用于相机堆栈中。有关在URP中使用多个相机的更多信息,请参阅“使用多个相机”。
当您在场景中有一个活动的Base Camera时,此图标会出现在场景视图中的相机小工具旁边:

有关Unity在Inspector中为Base Camera公开的属性信息,请参阅Base Camera组件参考。
简而言之,Base Camera是URP中用于渲染的基本工具,您可以根据需要在场景中使用一个或多个。它是所有渲染任务的基础,并且可以通过各种属性和设置进行配置,以满足您的渲染需求。
Overlay Camera
“Overlay Camera”(叠加摄像机)是Unity中的一种特殊摄像机类型,它的功能是将自己的视图渲染在另一个摄像机的输出之上。使用Overlay Camera可以创建一些特殊效果,例如在2D用户界面中显示3D对象,或者在车辆驾驶舱中显示信息。
Overlay Camera必须与一个或多个基础摄像机(Base Camera)结合使用,通过摄像机堆叠(Camera Stacking)系统来实现。Overlay Camera不能单独使用。如果一个Overlay Camera没有被加入到摄像机堆叠中,那么它将不会执行任何渲染循环的步骤,这种摄像机被称为“孤立的摄像机”(orphan Camera)。
需要注意的是,在Unity的渲染管道(URP)的当前版本中,Overlay Camera和摄像机堆叠只在使用前向渲染器(Forward Renderer)时得到支持。
当场景中存在一个活动的Overlay Camera时,场景视图(Scene view)中的摄像机小工具(Camera Gizmo)旁边会出现一个特定的图标。

在摄像机堆叠中,基础摄像机决定了摄像机堆叠的大部分属性。因为Overlay Camera只能在摄像机堆叠中使用,所以Unity在渲染场景时只会使用Overlay Camera的以下属性:
- 投影(Projection)
- FOV轴(FOV Axis)
- 视场(Field of View)
- 物理摄像机属性(Physical Camera properties)
- 裁剪平面(Clipping plans)
- 渲染器(Renderer)
- 清除深度(Clear Depth)
- 不透明纹理(Opaque Texture)
- 深度纹理(Depth Texture)
- 渲染阴影(Render Shadows)
- 剔除掩码(Culling Mask)
- 遮挡剔除(Occlusion Culling)
Unity会隐藏Inspector中所有未使用的其他属性。你可以通过脚本访问这些未使用的属性,但是对这些属性的任何更改都不会影响使用Overlay Camera的任何摄像机堆叠的视觉输出。
你不能对单个Overlay Camera应用后期处理效果。你可以对单个基础摄像机或摄像机堆叠应用后期处理效果。
要了解Unity在Overlay Camera的Inspector中暴露的属性,请参见Overlay Camera组件参考。