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

Texture2D.LoadRawTextureData

Объявление

public void LoadRawTextureData(byte[] data);

public void LoadRawTextureData(NativeArray data);

public void LoadRawTextureData(IntPtr data, int size);

Параметры

data Массив необработанных данных для инициализации пикселей текстуры.
size Размер данных в байтах.

Описание

Заполняет пиксели текстуры необработанными предварительно отформатированными данными.

Эта функция заполняет память пикселей текстуры необработанными данными. Это в основном полезно для загрузки данных формата сжатой текстуры в текстуру.

Переданные данные должны иметь необходимый размер для заполнения всей текстуры в соответствии с ее шириной, высотой, форматом данных и mipmapCount ; в противном случае выдается исключение UnityException. MIP-карты располагаются в памяти, начиная с самой большой, сразу за ней следуют данные меньшего уровня. Например, текстура 16 x 8 в формате RGBA32 без MIP-карт может быть заполнена массивом размером 512 байт (16 x 8 x 4).

Для генерации текстуры во время выполнения также можно напрямую записывать данные текстуры с помощью GetRawTextureData, который возвращает Unity.Collections.NativeArray . Это может быть быстрее, так как позволяет избежать копирования в память, которое сделал бы LoadRawTextureData.

Вызовите Применить после установки данных изображения, чтобы фактически загрузить их в графический процессор.

Смотрите так же: SetPixels, SetPixels32, SetPixelData, Apply, GetRawTextureData, ImageConversion.LoadImage.

using UnityEngine; public class ExampleScript : MonoBehaviour { public void Start() { // Создаем текстуру 16x16 в формате PVRTC RGBA4 // и заполнить его необработанными байтами PVRTC. Texture2D tex = new Texture2D(16, 16, TextureFormat.PVRTC_RGBA4, false); // Raw PVRTC4 data for a 16x16 texture. This format is four bits // per pixel, so data should be 16*16/2=128 bytes in size. // Texture that is encoded here is mostly green with some angular // blue and red lines. byte[] pvrtcBytes = new byte[] { 0x30, 0x32, 0x32, 0x32, 0xe7, 0x30, 0xaa, 0x7f, 0x32, 0x32, 0x32, 0x32, 0xf9, 0x40, 0xbc, 0x7f, 0x03, 0x03, 0x03, 0x03, 0xf6, 0x30, 0x02, 0x05, 0x03, 0x03, 0x03, 0x03, 0xf4, 0x30, 0x03, 0x06, 0x32, 0x32, 0x32, 0x32, 0xf7, 0x40, 0xaa, 0x7f, 0x32, 0xf2, 0x02, 0xa8, 0xe7, 0x30, 0xff, 0xff, 0x03, 0x03, 0x03, 0xff, 0xe6, 0x40, 0x00, 0x0f, 0x00, 0xff, 0x00, 0xaa, 0xe9, 0x40, 0x9f, 0xff, 0x5b, 0x03, 0x03, 0x03, 0xca, 0x6a, 0x0f, 0x30, 0x03, 0x03, 0x03, 0xff, 0xca, 0x68, 0x0f, 0x30, 0xaa, 0x94, 0x90, 0x40, 0xba, 0x5b, 0xaf, 0x68, 0x40, 0x00, 0x00, 0xff, 0xca, 0x58, 0x0f, 0x20, 0x00, 0x00, 0x00, 0xff, 0xe6, 0x40, 0x01, 0x2c, 0x00, 0xff, 0x00, 0xaa, 0xdb, 0x41, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xe8, 0x40, 0x01, 0x1c, 0x00, 0xff, 0x00, 0xaa, 0xbb, 0x40, 0xff, 0xff, }; // Load data into the texture and upload it to the GPU. tex.LoadRawTextureData(pvrtcBytes); tex.Apply(); // Assign texture to renderer's material. GetComponent<Renderer>().material.mainTexture = tex; } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3