using System; using UnityEngine; namespace AmplifyImpostors { public static class Texture2DEx { private static byte[] Footer = new byte[26] { 0, 0, 0, 0, 0, 0, 0, 0, 84, 82, 85, 69, 86, 73, 83, 73, 79, 78, 45, 88, 70, 73, 76, 69, 46, 0 }; public static byte[] EncodeToTGA(this Texture2D tex, bool withAlpha = true) { int num = ((!withAlpha) ? 3 : 4); byte[] rawTextureData = tex.GetRawTextureData(); int num2 = rawTextureData.Length; int width = tex.width; int height = tex.height; int num3 = num * (num2 / num); int num4 = num3; int num5 = Footer.Length; int num6 = 18 + num5 + num4; byte[] array = new byte[num6]; int num7 = 0; array[num7++] = 0; array[num7++] = 0; array[num7++] = 2; array[num7++] = 0; array[num7++] = 0; array[num7++] = 0; array[num7++] = 0; array[num7++] = 0; array[num7++] = 0; array[num7++] = 0; array[num7++] = 0; array[num7++] = 0; array[num7++] = (byte)((width >> 0) & 0xFF); array[num7++] = (byte)((width >> 8) & 0xFF); array[num7++] = (byte)((height >> 0) & 0xFF); array[num7++] = (byte)((height >> 8) & 0xFF); array[num7++] = (byte)(8 * num); array[num7++] = 0; Array.Copy(rawTextureData, 0, array, num7, num2); num7 += num2; Array.Copy(Footer, 0, array, num7, num5); return array; } } }