Gizmos.DrawFrustumの使い方
環境
Unity2022.2.14f1
概要
ビューフラスタム(視錐台)を表示するデバッグ機能の使い方
コード
private void OnDrawGizmos()
{
Gizmos.color = Color.cyan;
Gizmos.matrix = Matrix4x4.TRS(_camera.transform.position, _camera.transform.rotation, new Vector3(_camera.aspect, 1.0f, 1.0f));
Gizmos.DrawFrustum(Vector3.zero, _camera.fieldOfView, _camera.farClipPlane, _camera.nearClipPlane, 1.0f);
// 指定距離のクリップ面のサイズ
float height = _cameraDistance * Mathf.Tan(_camera.fieldOfView * 0.5f * Mathf.Deg2Rad) * 2.0f;
Gizmos.DrawCube(Vector3.forward * _cameraDistance, new Vector3(height * _camera.aspect, height, 0.1f));
// クリップ面の高さから距離を求める
float distance = height * 0.5f / Mathf.Tan(_camera.fieldOfView * 0.5f * Mathf.Deg2Rad);
Gizmos.DrawLine(Vector3.zero, Vector3.forward * distance);
}