Esempio n. 1
0
        public static string GetWebVisibleTexturePreview(TextureImporter importer, Texture2D tex, bool createFlag)
        {
            if (importer == null || tex == null)
            {
                return("");
            }
            string guid = AssetDatabase.AssetPathToGUID(importer.assetPath);
            string file = guid + ".png";

            if (!createFlag)
            {
                return(file);
            }


            var           backupActive  = RenderTexture.active;
            RenderTexture renderTexture = new RenderTexture(tex.width, tex.height, 0);
            CommandBuffer cmd           = new CommandBuffer();

            cmd.Blit(tex, renderTexture);
            Graphics.ExecuteCommandBuffer(cmd);
            cmd.Dispose();

            RenderTexture.active = renderTexture;
            var saveTex = new Texture2D(tex.width, tex.height, TextureFormat.RGBA32, false);

            saveTex.ReadPixels(new Rect(0, 0, tex.width, tex.height), 0, 0);
            AssetsReporterUtils.SaveTexture2d(AssetsReporterUtils.PreviewDir + file, saveTex);

            RenderTexture.active = backupActive;
            renderTexture.Release();

            return(file);
        }
Esempio n. 2
0
        public static string GetAssetPreview(AssetImporter importer, UnityEngine.Object obj, bool createFlag)
        {
            if (importer == null || obj == null)
            {
                return("");
            }
            string guid = AssetDatabase.AssetPathToGUID(importer.assetPath);
            string file = guid + ".png";

            if (!createFlag)
            {
                return(file);
            }

            //					var gmo = GameObject.Instantiate(obj);
            var tex = AssetPreview.GetAssetPreview(obj);

            tex = AssetPreview.GetAssetPreview(obj);
            for (int i = 0; i < 100; ++i)
            {
                if (obj != null && tex == null)
                {
                    tex = AssetPreview.GetAssetPreview(obj);
                    System.Threading.Thread.Sleep(10);
                }
            }
            if (tex != null)
            {
                AssetsReporterUtils.SaveTexture2d(AssetsReporterUtils.PreviewDir + file, tex);
                tex = null;
            }
            return(file);
        }