1. 程式人生 > >unity 獲取水平FOV

unity 獲取水平FOV

  unity中Camera的Field of View是指的垂直FOV,水平FOV可以經過計算得到。

建立指令碼如下,把指令碼掛載到攝像機上即可得到水平FOV:

public class GetHorizontalFov : MonoBehaviour {

  Camera myCamera;
  float distance = 10 - 0.015f;
  void Start () {
    myCamera = gameObject.GetComponent<Camera>();
    float cameraHeight = 2.0f * distance * Mathf.Tan(myCamera.fieldOfView * 0.5f * Mathf.Deg2Rad);//視錐體高度
    var cameraWidth = cameraHeight * myCamera.aspect;//視錐體寬度
    var horizontalfov = 2 * Mathf.Atan(cameraWidth * 0.5f / distance) * Mathf.Rad2Deg;//水平FOV
    Debug.LogError("horizontalfov: " + horizontalfov);
  }
}