RectTransform в Unity C# — размер и позиция UI-элементов
RectTransform — специальный компонент Unity для управления положением, размером и якорями объектов интерфейса (UI). Это расширение обычного Transform с дополнительными возможностями для элементов интерфейса.
Главная задача RectTransform — гибко размещать объекты на экране. Благодаря ему интерфейс легко адаптируется под разные разрешения и соотношения сторон.
Компонент даёт инструменты для работы с якорями: можно привязывать элемент к краям или центру родителя. Это важно для адаптивных интерфейсов, где элементы меняют размер и позицию при изменении окна.
Пример кода
Скрипт задаёт размер и позицию элемента, а в Update анимирует ширину:
using UnityEngine;
public class UIElement : MonoBehaviour
{
private RectTransform rectTransform;
void Start()
{
// Получение ссылки на RectTransform компонента
rectTransform = GetComponent<RectTransform>();
// Установка размера объекта
rectTransform.sizeDelta = new Vector2(200, 100);
// Перемещение объекта к центру
rectTransform.anchoredPosition = Vector2.zero;
}
void Update()
{
// Динамическое изменение ширины в зависимости от времени
rectTransform.sizeDelta = new Vector2(200 + Mathf.PingPong(Time.time * 50, 100), 100);
}
}
Важно помнить про систему координат: позиция и размер задаются относительно родителя. anchoredPosition — смещение относительно якоря, а pivot задаёт точку привязки объекта.