動态
用代碼建立貼圖紋理可以直接使用 new Texture2D函數來實作,然後可以使用SetPixel來設定紋理的每個像素點,而在對接口是常用到的是給定圖檔的位元組數組來建立,代碼如下:
Texture2D Tex = new Texture2D(2560, 1440);
Tex.LoadImage(Data); //這個便是位元組數組
byte[]和Texture互轉
當然位元組數組和紋理也可以進行互轉,不同格式,有不同的函數支援,詳細的内庫說明如下:
public static byte[] EncodeToEXR(this Texture2D tex);
[NativeMethod(Name = "ImageConversionBindings::EncodeToEXR", IsFreeFunction = true, ThrowsException = true)]
public static byte[] EncodeToEXR(this Texture2D tex, Texture2D.EXRFlags flags);
//
// 摘要:
// 将此紋理編碼為JPG格式。
// 參數:
// tex:
// 轉換的紋理
//
// quality:
// 編碼JPG的品質 , 1..100 (預設 75).
public static byte[] EncodeToJPG(this Texture2D tex);
//
// 摘要:
// 将此紋理編碼為JPG格式。
// 參數:
// tex:
// 轉換的紋理
//
// quality:
// 編碼JPG的品質 , 1..100 (預設 75).
[NativeMethod(Name = "ImageConversionBindings::EncodeToJPG", IsFreeFunction = true, ThrowsException = true)]
public static byte[] EncodeToJPG(this Texture2D tex, int quality);
//
// 摘要:
// 将此紋理編碼為PNG格式。
// 參數:
// tex:
// 轉換的紋理
[NativeMethod(Name = "ImageConversionBindings::EncodeToPNG", IsFreeFunction = true, ThrowsException = true)]
public static byte[] EncodeToPNG(this Texture2D tex);
//
//
// 摘要:
// 将此紋理編碼為TGA格式。
// 參數:
// tex:
// 轉換的紋理
[NativeMethod(Name = "ImageConversionBindings::EncodeToTGA", IsFreeFunction = true, ThrowsException = true)]
public static byte[] EncodeToTGA(this Texture2D tex);
//
// 摘要:
// 加載PNG/JPG (或者其他支援格式) 的格式圖檔給紋理.
//
// 參數:
// data:
// 加載的位元組數組.
//
// markNonReadable:
// 預設設定為false,傳遞true可選地将紋理标記為不可讀。
//
// tex:
// 載入圖像的紋理
//
// 傳回結果:
// 如果資料可以被加載,則傳回true,否則傳回false。
[NativeMethod(Name = "ImageConversionBindings::LoadImage", IsFreeFunction = true)]
public static bool LoadImage([NotNull("ArgumentNullException")] this Texture2D tex, byte[] data, bool markNonReadable);
public static bool LoadImage(this Texture2D tex, byte[] data);