private static Texture2D GetTextureWithMaterial(Texture2D original, Material material, string name) { Texture2D newTexture; using (new SRGBWriteScope(true)) { using (var temporary = new TemporaryActiveTexture(original.width, original.height, 0)) { GL.Clear(false, true, _fullyTransparent); Graphics.Blit(original, temporary, material); newTexture = new Texture2D(original.width, original.width, TextureFormat.ARGB32, false, true) { name = name, filterMode = FilterMode.Bilinear, hideFlags = HideFlags.DontSave }; newTexture.ReadPixels(new Rect(0f, 0f, original.width, original.width), 0, 0); newTexture.alphaIsTransparency = true; newTexture.Apply(); } } return(newTexture); }
private Texture2D GetIconWithMaterial(Material material) { Texture2D newTexture = null; using (new TextureHelper.SRGBWriteScope(true)) { using (var temporary = new TemporaryActiveTexture(Default.width, Default.height, 0)) { GL.Clear(false, true, new Color(1f, 1f, 1f, 0f)); Graphics.Blit(Default, temporary, material); newTexture = new Texture2D(Default.width, Default.width, TextureFormat.ARGB32, false, true) { filterMode = FilterMode.Bilinear }; newTexture.ReadPixels(new Rect(0.0f, 0.0f, Default.width, Default.width), 0, 0); newTexture.alphaIsTransparency = true; newTexture.Apply(); } } return(newTexture); }