[Unity Doc](https://docs.unity3d.com/ru/2021.1/Manual/script-AspectRatioFitter.html) [Демонстрация](https://www.youtube.com/watch?v=UMYPiO_2VB8) `AspectRatioFitter` — это компонент в Unity, который используется для того, чтобы Canvas-gameobject сохранял свое соотношение сторон независимо от размеров родителя. Когда вы добавляете `AspectRatioFitter` к Canvas-gameobject с UI-компонентом, например, `Image`, у вас появляется возможность установить желаемое соотношение сторон. Вы можете выбрать различные режимы подстройки: - **None**: Не применяет соотношение сторон. - **WidthControlsHeight**: Ширина контролирует высоту. - **HeightControlsWidth**: Высота контролирует ширину. - **FitInParent**: Подгоняет объект так, чтобы он полностью уместился в родительском элементе, сохраняя соотношение сторон. - **EnvelopeParent**: Растягивает объект так, чтобы он заполнил всю доступную область родительского элемента, сохраняя соотношение сторон. ### Пример использования ```csharp // Пример добавления AspectRatioFitter через код using UnityEngine; using UnityEngine.UI; public class AspectRatioFitterExample : MonoBehaviour { void Start() { // Получаем компонент Image на текущем GameObject Image img = GetComponent<Image>(); // Добавляем AspectRatioFitter компонент AspectRatioFitter arf = gameObject.AddComponent<AspectRatioFitter>(); // Устанавливаем соотношение сторон на основе изображения arf.aspectRatio = img.sprite.rect.width / img.sprite.rect.height; // Устанавливаем режим подстройки arf.aspectMode = AspectRatioFitter.AspectMode.WidthControlsHeight; } } ``` ### Производительность `AspectRatioFitter` обычно не должен создавать значительных проблем с производительностью, так как он просто изменяет размеры объекта на основе уже имеющейся информации. Однако, если у вас много элементов UI, которым нужно динамически менять размер, следует провести тесты производительности.