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);
        }
Exemple #2
0
        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);
        }