unity中一个场景有多个摄像机会怎么显示画面

在 Unity 中,决定当前画面使用哪个摄像机的内容,主要由以下几个关键因素决定:

  1. 摄像机深度(Depth 属性)
    核心规则:Unity 按照摄像机的 Depth 值(在 Camera 组件中)从低到高渲染

深度高的覆盖深度低的:深度值最大的摄像机最后渲染,其画面会覆盖在之前渲染的画面上

示例:
csharp
// Camera A: Depth = 0 → 先渲染
// Camera B: Depth = 1 → 后渲染(最终显示在屏幕上)
2. 清除标志(Clear Flags)
Skybox/Solid Color:会清除之前的画面(适合主摄像机)

Depth Only:只清除深度缓冲区,保留颜色缓冲区(适合UI摄像机)

Don't Clear:保留所有缓冲区(特殊用途)

  1. 视口矩形(Viewport Rect)
    控制摄像机渲染到屏幕的区域(0-1标准化坐标)

分屏示例:

csharp
// 左半屏摄像机
cameraLeft.rect = new Rect(0, 0, 0.5f, 1);

// 右半屏摄像机
cameraRight.rect = new Rect(0.5f, 0, 0.5f, 1);
4. 渲染目标(Target Texture)
如果设置了 Render Texture,画面会渲染到纹理而非屏幕
未设置 Target Texture 的摄像机才渲染到屏幕

  1. 激活状态(GameObject Active)
    必须激活:只有启用的摄像机才会渲染

组件启用:Camera 组件本身的启用复选框也要勾选

  1. 渲染层级(Culling Mask)
    决定摄像机渲染哪些图层(Layer)
    不匹配的图层对象不会被渲染
posted @ 2025-06-12 16:17  木土无心  阅读(228)  评论(0)    收藏  举报