`Grid Layout Group` — это компонент в Unity, используемый для автоматического управления размещением дочерних объектов в родительском контейнере в виде сетки (grid). Он позволяет создавать двухмерные массивы элементов и автоматически регулировать их размер, позицию и расстояние между собой. Этот компонент часто используется в интерфейсах пользователей (UI), особенно когда необходимо отобразить большое количество однотипных элементов, таких как кнопки, изображения или карточки. ### Основные параметры: - **Cell Size**: Размер ячейки в сетке. Это определяет размер каждого дочернего элемента. - **Spacing**: Расстояние между ячейками по горизонтали и вертикали. - **Padding**: Отступы сетки от краёв родительского контейнера. - **Start Corner**: Угол, с которого начнётся заполнение сетки (верхний левый, верхний правый, нижний левый, нижний правый). - **Start Axis**: Ось, по которой будут добавляться новые элементы (горизонтальная или вертикальная). - **Child Alignment**: Выравнивание дочерних элементов внутри сетки. ### Пример использования на C#: ```csharp using UnityEngine; using UnityEngine.UI; public class GridSetup : MonoBehaviour { public GameObject itemPrefab; // Префаб для элементов сетки public int rows = 5; // Количество строк public int columns = 5; // Количество столбцов void Start() { GridLayoutGroup grid = GetComponent<GridLayoutGroup>(); grid.cellSize = new Vector2(50, 50); // Размер ячейки grid.spacing = new Vector2(5, 5); // Расстояние между ячейками // Создание элементов сетки for (int i = 0; i < rows * columns; i++) { Instantiate(itemPrefab, transform); } } } ``` В этом примере мы создаем сетку 5x5 и заполняем ее префабами `itemPrefab`. Размер ячейки и расстояние между ячейками устанавливаются программно. ### Производительность: В большинстве случаев `Grid Layout Group` не сильно влияет на производительность, если число элементов и частота их изменения не слишком велики. Однако для сцен с большим числом элементов лучше использовать оптимизированные решения, такие как "Object Pooling" (объектные пулы).