using System; using UnityEngine; public class TextureResource { public TextureResource(int width, int height, TextureFormat format, Rect[] uvRects, byte[] data) { this.width = width; this.height = height; this.format = format; this.uvRects = null; if (uvRects != null && 0 < uvRects.Length) { this.uvRects = new Rect[uvRects.Length]; Array.Copy(uvRects, this.uvRects, uvRects.Length); } this.data = data; } public Texture2D CreateTexture2D() { if (this.format == TextureFormat.DXT1 || this.format == TextureFormat.DXT5) { Texture2D texture2D = new Texture2D(this.width, this.height, this.format, false); texture2D.LoadRawTextureData(this.data); texture2D.Apply(); return texture2D; } if (this.format == TextureFormat.ARGB32 || this.format == TextureFormat.RGB24) { Texture2D texture2D2 = new Texture2D(2, 2, this.format, false); texture2D2.LoadImage(this.data); return texture2D2; } Debug.LogError("format:" + this.format.ToString() + "は対応していません"); return null; } public readonly int width; public readonly int height; public readonly TextureFormat format; public readonly Rect[] uvRects; public readonly byte[] data; }