Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Размер усеченного конуса на заданном расстоянии от камеры

Поперечное сечение усеченного обзора на определенном расстоянии от камерыКомпонент, создающий изображение определенного точка обзора в вашей сцене. Вывод либо рисуется на экране, либо фиксируется в виде текстуры. Подробнее
See in Словарь
определяет прямоугольник в мировом пространстве, обрамляющий видимую область. Иногда полезно вычислить размер этого прямоугольника на заданном расстоянии или найти расстояние, на котором прямоугольник имеет заданный размер. Например, если движущейся камере необходимо постоянно держать объект (например, игрока) в кадре, она не должна приближаться настолько, чтобы часть этого объекта была обрезана.

Высоту усеченного конуса на заданном расстоянии (в мировых единицах измерения) можно получить по следующей формуле:

var frustumHeight = 2.0f * distance * Mathf.Tan(camera.fieldOfView * 0.5f * Mathf.Deg2Rad);

… и этот процесс можно выполнить в обратном порядке, чтобы вычислить расстояние, необходимое для получения заданной высоты усеченного конуса:

var distance = frustumHeight * 0.5f / Mathf.Tan(camera.fieldOfView * 0.5f * Mathf.Deg2Rad);

Также можно рассчитать угол обзора, когда известны высота и расстояние:

var camera.fieldOfView = 2.0f * Mathf.Atan(frustumHeight * 0.5f / distance) * Mathf.Rad2Deg;

Каждый из этих расчетов включает высоту усеченного конуса, но ее можно очень легко получить из ширины (и наоборот):

var frustumWidth = frustumHeight * camera.aspect; var frustumHeight = frustumWidth / camera.aspect;
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3