Unity 中相机大小与相机矩形大小的关系

Unity 中相机大小与相机矩形大小的关系详解

在 Unity 中,相机的大小(Size)与相机矩形大小(Viewport Rect)是两个密切相关但概念不同的属性,它们共同决定了相机的渲染范围和显示效果。

核心概念解析

1. 相机大小(Camera Size)

正交相机:Camera.orthographicSize 属性

复制代码
#### **定义:相机视图的半高(从中心到顶部的距离)**
复制代码
#### **单位:世界单位(World Units)**
复制代码
#### **实际高度 = `orthographicSize * 2`**
复制代码
#### **实际宽度 = `orthographicSize * 2 * Camera.aspect`(aspect 为宽高比)**

透视相机:没有直接的 "Size" 属性

复制代码
#### **通过 `Camera.fieldOfView`(FOV)控制视角大小**
复制代码
#### **FOV 与显示大小的关系取决于物体与相机的距离**

2. 相机矩形大小(Viewport Rect)

Camera.rect 属性

复制代码
#### **定义:相机渲染画面在屏幕上的位置和范围**
复制代码
#### **格式:`(x, y, width, height)`,归一化坐标(0-1)**
复制代码
#### **示例:**

*

  #### **`(0,0,1,1)`:全屏**

*

  #### **`(0,0,0.5,0.5)`:屏幕左下角四分之一区域**

*

  #### **`(0.5,0.5,0.5,0.5)`:屏幕右上角四分之一区域**

1. 正交相机的关系公式

cs 复制代码
实际渲染宽度 = 2 * orthographicSize * aspect * rect.width
实际渲染高度 = 2 * orthographicSize * rect.height

2. 透视相机的关系公式

cs 复制代码
实际视角宽度 = 2 * distance * tan(fieldOfView * 0.5 * Mathf.Deg2Rad) * aspect * rect.width
实际视角高度 = 2 * distance * tan(fieldOfView * 0.5 * Mathf.Deg2Rad) * rect.height

3. 视觉大小对比表

设置 正交相机效果 透视相机效果
增加 Size/FOV 显示更多场景内容 显示更多场景内容
增加 Rect 宽度 横向拉伸画面 横向拉伸画面
增加 Rect 高度 纵向拉伸画面 纵向拉伸画面
Size 不变,Rect 缩小 画面内容不变,显示区域变小 画面内容不变,显示区域变小
Rect 不变,Size 增加 显示更多内容,物体变小 显示更多内容,透视感增强