Unity 6.3
0 онлайн 74 гостей 3 в системе
Вход

Cubemap.SetPixelData

Declaration

public void SetPixelData(T[] data, int mipLevel, CubemapFace face, int sourceDataStartIndex = 0);
public void SetPixelData(NativeArray<T> data, int mipLevel, CubemapFace face, int sourceDataStartIndex = 0);

Параметры

Параметр Описание
данные Массив данных для использования.
mipLevel Уровень mipmap для записи. Диапазон 0 через текстуру Texture.mipmapCount. Значение по умолчанию 0.
лицо CubemapFace для записи.
sourceDataStartIndex Индекс в исходном массиве, с которого начнется копирование. Значение по умолчанию — 0.

Описание

Устанавливает необработанные данные всего уровня mipmap лица непосредственно в память CPU.

Этот метод устанавливает пиксельные данные для текстуры в памяти CPU. Texture.isReadable должно быть true, и вы должны вызвать Apply после SetPixelData для загрузки измененных пикселей в GPU.

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

Размер data массив должен быть шириной × высотой уровня mipmap, а расположение данных должно соответствовать формату текстуры, в противном случае SetPixelData Вы можете использовать byte для T если вы не хотите определять собственную структуру, соответствующую формату текстуры.

Unity вызывает исключение, когда SetPixelData не удается.

Дополнительные ресурсы: SetPixels, GetPixelData, Apply.

using UnityEngine;

public class ExampleScript : MonoBehaviour { public void Start() { Cubemap cubemap = new Cubemap(2, TextureFormat.RGB24, true);

var byteArray = new byte[] {255, 0, 0, 0, 255, 0, 0, 0, 255, 255, 235, 4, 255, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 0, 255};

cubemap.SetPixelData(byteArray, 0, CubemapFace.PositiveX); cubemap.SetPixelData(byteArray, 1, CubemapFace.PositiveX, 12);

cubemap.SetPixelData(byteArray, 0, CubemapFace.NegativeX, 15); cubemap.SetPixelData(byteArray, 1, CubemapFace.NegativeX, 12);

cubemap.SetPixelData(byteArray, 0, CubemapFace.PositiveY); cubemap.SetPixelData(byteArray, 1, CubemapFace.PositiveY, 12);

cubemap.SetPixelData(byteArray, 0, CubemapFace.NegativeY, 15); cubemap.SetPixelData(byteArray, 1, CubemapFace.NegativeY, 12);

cubemap.SetPixelData(byteArray, 0, CubemapFace.PositiveZ); cubemap.SetPixelData(byteArray, 1, CubemapFace.PositiveZ, 12);

cubemap.SetPixelData(byteArray, 0, CubemapFace.NegativeZ, 15); cubemap.SetPixelData(byteArray, 1, CubemapFace.NegativeZ, 12);

cubemap.Apply(updateMipmaps: false); } }