画角からカメラの距離を求める
2019年6月14日
画面のサイズと画角からカメラの距離を求めるコード。すぐ忘れるので。
depth = ( 0.5*height ) / tan( 0.5*fov )
// 高さは幅とアスペクト比から求めたり、対象のバウンディングから求める
float height = 9.0f; // 仮に 9m
float upFovDegrees = 60.0f; // 画角
float halfHeight = 0.5f * height;
// 半分のラジアン
float halfAngleRadians = 0.5f * upFovDegrees * Mathf.Deg2Rad;
// 高さと画角から距離を求める
float depth = halfHeight / Mathf.Tan( halfAngleRadians);
// 実装次第だが、仮に Unityのカメラに設定する
camera.transform.position = new Vector3( 0, 0, -depth);