ImageTexture
GPU-текстура из Image для создания и обновления пикселей во время работы.
Image хранит данные изображения на CPU; ImageTexture позволяет использовать их как Texture2D. Создайте непустой Image, заполните пиксели и передайте в CreateFromImage. Дальнейшее изменение Image или копии из GetImage не обновляет текстуру автоматически.
Для повторной загрузки при прежних размерах, формате и mipmaps используйте Update. Для изменения этих параметров — SetImage. SetSizeOverride меняет логический размер, не количество пикселей; ноль сохраняет текущую ось и не снимает override. После override учитывайте размерный контракт Update.
Обычные импортированные ресурсы проекта загружайте через ResourceLoader.Load<Texture2D>: их конкретным типом может быть CompressedTexture2D, а не ImageTexture. Чтение исходного PNG как внешнего файла — другой путь; наличие файла в редакторе не гарантирует его упаковку в экспорт. Пределы размера зависят от GPU, формата и backend; не считайте одно фиксированное число гарантией доступной памяти.
Ресурсные операции, копии пикселей, обновление, замена формата и независимая загрузка проверены в Windows Forward+/Vulkan. Отрисовка интерфейса, экспортная упаковка, все форматы и корректность альфа-попаданий после замены изображения этим прогоном не подтверждены.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
ImageTextureКонструктор
public ImageTexture();Создаёт неинициализированную текстуру: размеры равны 0, GetImage возвращает null. До Update задайте непустое изображение через SetImage либо используйте CreateFromImage. Наличие RID само по себе не подтверждает загрузку пикселей.
Свойства1
ImageСвойство
public Image Image { get; set; }Внутреннее сохраняемое свойство изображения. Getter читает отдельное изображение через GetImage; изменение его пикселей не меняет текстуру. Setter выполняет SetImage с перераспределением данных, а не Update. Для частых обновлений используйте явный Update с подходящими размером, форматом и конфигурацией mipmaps.
Методы4
CreateFromImageImageTexture
public static ImageTexture CreateFromImage(Image image);Создаёт новую GPU-текстуру из Image. Копирует текущие пиксели, формат и имеющуюся mipmap-цепочку; дальнейшая правка отдельного Image не является автоматическим обновлением этой текстуры.
| Имя | Тип | По умолчанию |
|---|---|---|
image | Image | — |
imageНепустой Image. Если нужны mipmaps уменьшенного изображения, подготовьте их до создания текстуры и проверьте результат GenerateMipmaps.
ImageTextureНовая ImageTexture либо null для недопустимого пустого/null изображения. Для отображения назначьте ресурс Texture у Sprite2D или другому подходящему получателю.
SetImagevoid
public void SetImage(Image image);Инициализирует или заменяет данные текстуры непустым Image. Разрешает другой размер, формат и конфигурацию mipmaps, создавая новое GPU-хранилище. При замене существующей текстуры её RID сохраняется через texture_replace. Пиксели копируются: последующее изменение исходного Image требует отдельной загрузки. Метод void; он не возвращает код ошибки. Для прежних параметров используйте Update.
| Имя | Тип | По умолчанию |
|---|---|---|
image | Image | — |
imageНепустой Image с требуемыми пикселями и заранее подготовленными mipmaps, если они нужны.
SetSizeOverridevoid
public void SetSizeOverride(Vector2I size);Меняет логические размеры текстуры без изменения физических пикселей GetImage. Только ненулевые компоненты заменяют текущие значения: Vector2I.Zero ничего не восстанавливает, в отличие от DpiTexture. Используйте неотрицательные значения после инициализации. Override меняет размеры, с которыми Update сравнивает входной Image: перед обновлением восстановите исходные размеры явно или вызовите SetImage. Не используйте override для увеличения разрешения.
| Имя | Тип | По умолчанию |
|---|---|---|
size | Vector2I | — |
sizeЛогические размеры; 0 сохраняет текущий размер соответствующей оси. Это не размеры новой растровой копии.
Updatevoid
public void Update(Image image);Загружает новые пиксели в уже инициализированную текстуру без замены её размера и формата. Входной Image должен совпадать по ширине, высоте, формату и наличию mipmaps. Цепочку mipmaps подготовьте в Image до загрузки. При несовпадении метод сообщает ошибку и не является автоматическим resize/convert. Возвращаемого Error нет. Изменения CPU-изображения сами на GPU не попадают; GetImage тоже возвращает отдельные данные.
| Имя | Тип | По умолчанию |
|---|---|---|
image | Image | — |
imageImage с точно совпадающими размерами, форматом и конфигурацией mipmaps.