版本:Unity 6 (6000.0)
语言:English
在 URP 中设置摄像机堆栈
在 URP 中设置分屏渲染

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

摄像机堆栈包含一个基础 摄像机一个组件,用于创建场景中特定视点的图像。输出要么绘制到屏幕上,要么捕获为纹理。 更多信息
参见 术语表
,以及在其上叠加的一个或多个覆盖摄像机。在编辑器中,您可以根据需要添加、移除和重新排序这些摄像机以获得所需的效果。

此页面分为以下部分

向摄像机堆栈添加摄像机

要向摄像机堆栈添加摄像机,请执行以下步骤

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

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

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

使用 C# 脚本向摄像机堆栈添加摄像机

您还可以使用 C# 脚本向摄像机堆栈添加摄像机。使用基础摄像机的 通用附加摄像机数据 组件的 cameraStack 属性,如下所示

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

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

要从摄像机堆栈中移除摄像机,请执行以下步骤

  1. 创建一个包含至少一个覆盖摄像机的摄像机堆栈。有关说明,请参阅 向摄像机堆栈添加摄像机
  2. 选择摄像机堆栈的基础摄像机。
  3. 在摄像机检查器窗口中,转到 堆栈 部分,选择要移除的覆盖摄像机的名称,然后选择 移除 (-)。

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

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

您还可以使用 C# 脚本从摄像机堆栈中移除摄像机。使用基础摄像机的 通用附加摄像机数据 组件的 cameraStack 属性,如下所示

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

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

要重新排序摄像机堆栈中的摄像机,请执行以下步骤

  1. 创建一个包含多个覆盖摄像机的摄像机堆栈。有关说明,请参阅 向摄像机堆栈添加摄像机
  2. 选择摄像机堆栈中的基础摄像机。
  3. 在摄像机检查器中,转到 堆栈 部分。
  4. 使用覆盖摄像机名称旁边的句柄重新排序覆盖摄像机的列表。

基础摄像机渲染摄像机堆栈的基础层,堆栈中的覆盖摄像机按其列出的顺序从上到下渲染在此之上。

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

您还可以使用 C# 脚本重新排序摄像机堆栈。使用基础摄像机的 通用附加摄像机数据 组件的 cameraStack 属性。cameraStack 是一个 List,可以像任何其他 List 一样重新排序。

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