以编程方式设置 Unity 中的视野会导致错误的值

Programmatically settings the Field of View in Unity results in wrong values

我在 Unity 中玩相机,我通过脚本更改它的属性。 the property 变化之一是 Camera.fieldOfView。 属性 取决于焦距和传感器尺寸。

对于固定焦距,我计算了所需视野的传感器尺寸。当我分配传感器尺寸和焦距时,Unity 计算的视野与预期的不匹配。

我的计算与these ones相似,似乎是正确的。

Unity 的相机是否使用 Pinholde 模型以外的其他模型?差异从何而来?

如果我仔细阅读 the documentation,我就会知道 Camera.fieldOfView 定义为:

This is the vertical field of view; horizontal Field of view varies depending on the viewport's aspect ratio.

我的计算是针对水平视野的,我没有意识到我正在分配给相机的垂直视野。因此,显示的视野始终偏离传感器纵横比。

在 Unity 中,您需要 to adjust both the camera's fieldOfView and aspect to adjust the horizontal field of view