unity 獲取水平FOV
阿新 • • 發佈:2018-12-25
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);
}
}