Version: 6000.3
语言: 中文
在 URP 中设置相机堆栈
在 URP 中设置分屏渲染

在 URP 中的相机堆栈中添加和移除相机

摄像机堆栈包含单个基础相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表
将一个或多个叠加摄像机堆叠在顶部。在编辑器中,你可以根据需要添加、删除和重新排序这些摄像机,以实现所需的效果。

此页面分为以下部分:

将相机添加到相机堆栈

要将相机添加到相机堆栈,请使用以下步骤:

  1. 场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,您可以放置环境、障碍物和装饰,实质上是分批设计和构建游戏。更多信息
    请参阅术语表
    渲染类型(Render Type) 设置为 基础(Base),使其成为基础摄像机(Base Camera)。如果场景中没有基础摄像机,请创建一个。
  2. 在场景中创建另一个摄像机,然后选择它。
  3. 在相机中检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
    请参阅术语表
    窗口中,将 渲染类型(Render Type) 设置为 叠加(Overlay)。
  4. 再次选择基础相机。在摄像机检查器窗口中,转到“堆栈”部分,选择“添加”(+),然后选择叠加摄像机的名称。

叠加摄像机现在是基础摄像机摄像机堆栈的一部分。Unity 在基础摄像机的输出之上渲染叠加摄像机的输出。

注意:为相机堆栈创建多个相机时,请考虑相机是否都是必需的。您添加的每个摄像机都会使渲染速度变慢,因为活动摄像机会运行整个渲染循环,即使它不渲染任何内容。

使用 C# 脚本将相机添加到相机堆栈

还可以使用 C# 脚本将相机添加到相机堆栈。使用cameraStack基础摄像机的 通用附加摄像机数据(Universal Additional Camera Data) 组件的属性,如下所示:

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

从相机堆栈中删除相机

要从相机堆栈中删除相机,请使用以下步骤:

  1. 创建一个至少包含一个叠加摄像机的摄像机堆栈。有关说明,请参阅将相机添加到相机堆栈
  2. 选择摄像机堆栈的 基础摄像机(Base Camera)。
  3. 在摄像机检查器窗口中,前往“堆栈”部分,选择要移除的叠层摄像机的名称,然后选择“移除”-)。

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

使用 C# 脚本从相机堆栈中删除相机

还可以使用 C# 脚本从相机堆栈中删除相机。使用cameraStack基础摄像机的 通用附加摄像机数据(Universal Additional Camera Data) 组件的属性,如下所示:

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

重新排序相机堆栈中的相机

要对相机堆栈中的相机重新排序,请使用以下步骤:

  1. 创建包含多个叠加摄像机的摄像机堆栈。有关说明,请参阅将相机添加到相机堆栈
  2. 在相机堆栈中选择基础相机。
  3. 在摄像机检查器中,转到“堆栈”部分。
  4. 使用叠加摄像机名称旁边的控制柄对叠加摄像机列表进行重新排序。

基础摄像机渲染摄像机堆栈的基础层,堆栈中的叠加摄像机按照列出的顺序(从上到下)渲染在此之上。

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

还可以使用 C# 脚本对相机堆栈进行重新排序。使用cameraStack基础摄像机的 通用附加摄像机数据(Universal Additional Camera Data) 组件的属性。这cameraStack是一个List并且可以像任何其他List.

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