Version: Unity 6.0 (6000.0)
语言 : 中文
在 URP 中设置摄像机堆栈
在 URP 中设置分屏渲染

在 URP 中管理摄像机堆栈的添加与移除操作

摄像机堆栈由一个基础摄像机 (Base Camera) 和一个或多个叠加摄像机 (Overlay Camera) 构成。在 Unity 编辑器中,您可以根据需要自由添加、移除或调整摄像机顺序来实现特定渲染效果。

本页分为两个部分:

向摄像机堆栈添加摄像机

要将摄像机添加到摄像机堆栈,请按照以下步骤操作:

  1. 在场景中选择一个摄像机,将其渲染类型 (Render Type) 设为基础 (Base),使其成为基础摄像机。如果场景中没有基础摄像机,请先创建一个。
  2. 在场景中创建另一个摄像机,然后选中它。
  3. 在摄像机的检视面板 (Inspector) 窗口中,将该摄像机的渲染类型 (Render Type) 更改为覆盖 (Overlay)
  4. 再次选择基础摄像机。在摄像机的检视面板 (Inspector) 窗口中,进入堆栈 (Stack) 区域,点击添加 (Add) (+),并选择叠加摄像机的名称。

现在,叠加摄像机已成为基础摄像机堆叠的一部分。Unity 会将叠加摄像机的输出渲染在基础摄像机的输出之上。

注意:在创建摄像机堆叠时,请考虑每个摄像机是否必要。每个额外的摄像机都会增加渲染负担,因为即使不渲染任何内容,活动摄像机也会完整地运行渲染循环。

通过 C# 脚本将摄像机添加到摄像机堆栈

您还可以通过 C# 脚本将摄像机添加到摄像机堆栈中。可使用基础摄像机的 cameraStack Universal Additional Camera Data 组件的相关属性实现,如下所示:

var cameraData = camera.GetUniversalAdditionalCameraData();
cameraData.cameraStack.Add(myOverlayCamera);

从摄像机堆栈中移除摄像机

要从摄像机堆栈中移除摄像机,请按照以下步骤操作:

  1. 创建一个包含至少一个叠加摄像机的摄像机堆栈。具体步骤请参阅向摄像机堆栈添加摄像机
  2. 选择摄像机堆栈的基础摄像机。
  3. 摄像机的检视面板 (Inspector) 窗口中,进入堆栈 (Stack) 区域,选择要移除的叠加摄像机名称,然后点击移除 (Remove) (-)按钮。

被移除的叠加摄像机仍然保留在场景中,但不再是摄像机堆栈的一部分。

使用 C# 脚本从摄像机堆栈中移除摄像机

您还可以使用 C# 脚本从摄像机堆栈中移除摄像机。可使用基础摄像机的 cameraStack Universal Additional Camera Data 组件的相关属性实现,如下所示:

var cameraData = camera.GetUniversalAdditionalCameraData();
cameraData.cameraStack.Remove(myOverlayCamera);

在摄像机堆栈中重新排序摄像机

要在摄像机堆栈中重新排序摄像机,请按照以下步骤操作:

  1. 创建一个包含多个叠加摄像机的摄像机堆栈。具体步骤请参阅向摄像机堆栈添加摄像机
  2. 选择摄像机堆栈中的基础摄像机。
  3. 在摄像机的检视面板 (Inspector) 窗口中,进入堆栈 (Stack) 区域。
  4. 使用叠加摄像机名称旁边的手柄重新排列叠加摄像机的顺序。

基础摄像机渲染摄像机堆栈的基础层,而堆栈中的叠加摄像机则按照列表中的顺序从上到下渲染在其上方。

使用 C# 脚本从摄像机堆栈中重新排序摄像机

您还可以使用 C# 脚本对摄像机堆栈重新排序。可使用基础摄像机的 cameraStack Universal Additional Camera Data 组件的相关属性实现。该 cameraStack 是一个 List,可以按与任何其他 List 相同的方式重新排序。

在 URP 中设置摄像机堆栈
在 URP 中设置分屏渲染