private void CreateAssetData(StringBuilder sb, string abname, string[] paths)
        {
            bool isFirst = true;

            sb.Append("{");
            AssetsReporterUtils.AddJsonObject(sb, "abname", abname).Append(",");
            this.ClearDependsAssetBundle();
            sb.Append("files:[");
            foreach (var path in paths)
            {
                if (isFirst)
                {
                    isFirst = false;
                }
                else
                {
                    sb.Append(",");
                }
                sb.Append("{");
                AssetsReporterUtils.AddJsonObject(sb, "path", path).Append(",");

                var depends = AssetDatabase.GetDependencies(new string[] { path });
                System.Array.Sort(depends);
                this.AddDependsAssetBundle(depends);
                AssetsReporterUtils.AddJsonObjectArrayWithout(sb, "depends", depends, path);
                System.Array.Sort <string>(depends);

                UnityEngine.Object obj = AssetDatabase.LoadAssetAtPath <UnityEngine.Object>(path);
                if (obj != null)
                {
                    sb.Append(",");
                    AssetsReporterUtils.AddJsonObject(sb, "type", obj.GetType().Name);
                    if (obj.GetType() != typeof(GameObject))
                    {
                        Resources.UnloadAsset(obj);
                    }
                    // thumnail
                    {
                        if (obj.GetType() == typeof(Texture2D) && !AssetsReporterUtils.IsVisibleInWebBrowserImage(path))
                        {
                            sb.Append(",");
                            string preview = AssetsReporterUtils.GetWebVisibleTexturePreview(TextureImporter.GetAtPath(path) as TextureImporter, obj as Texture2D, this.createThumnailPreview);
                            AssetsReporterUtils.AddJsonObject(sb, "preview", preview);
                        }
                        else if (obj.GetType() == typeof(GameObject))
                        {
                            sb.Append(",");
                            var    assetImporter = AssetImporter.GetAtPath(path);
                            string preview       = AssetsReporterUtils.GetAssetPreview(assetImporter, obj, this.createThumnailPreview || ((assetImporter as ModelImporter) == null));
                            AssetsReporterUtils.AddJsonObject(sb, "preview", preview);
                        }
                    }

                    obj = null;
                }
                sb.Append("}");
            }
            sb.Append("],\n");
            this.RemoveDependsAssetBundle(paths);
            this.ReportDependsAssetBundle(sb);
            sb.Append("}\n");
        }
Beispiel #2
0
        private void ReportTexture(StringBuilder sb, TextureImporter importer)
        {
            int w, h;
            var type    = importer.textureType;
            int maxSize = importer.maxTextureSize;

#if UNITY_5_5_OR_NEWER
            var defaultTextureSetting = importer.GetDefaultPlatformTextureSettings();
            var format = defaultTextureSetting.format;
            if (!importer.GetPlatformTextureSettings(this.platform, out maxSize, out format))
            {
                maxSize = importer.maxTextureSize;
                format  = defaultTextureSetting.format;
            }
#else
            var format = importer.textureFormat;
            if (!importer.GetPlatformTextureSettings(this.platform, out maxSize, out format))
            {
                maxSize = importer.maxTextureSize;
                format  = importer.textureFormat;
            }
#endif

            var tex = GetTextureSize(importer, out w, out h) as Texture2D;
            sb.Append("{");
            if (tex != null)
            {
                if (!AssetsReporterUtils.IsVisibleInWebBrowserImage(importer.assetPath))
                {
                    string preview = AssetsReporterUtils.GetWebVisibleTexturePreview(importer, tex, true);
                    AssetsReporterUtils.AddJsonObject(sb, "preview", preview).Append(",");
                }
            }

            AssetsReporterUtils.AddJsonObject(sb, "path", importer.assetPath.ToString()).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "textureType", type.ToString()).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "isReadable", importer.isReadable).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "wrapMode", importer.wrapMode.ToString()).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "mipmapEnabled", importer.mipmapEnabled).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "width", w).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "height", h).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "maxSize", maxSize).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "textureFormat", format.ToString()).Append(",");
            if (string.IsNullOrEmpty(importer.spritePackingTag))
            {
                AssetsReporterUtils.AddJsonObject(sb, "isPow2", IsPow2Size(w, h)).Append(",");
            }
            else
            {
                AssetsReporterUtils.AddJsonObject(sb, "isPow2", true).Append(",");
            }
            AssetsReporterUtils.AddJsonObject(sb, "spritePackingTag", importer.spritePackingTag);
            sb.Append("}");
            if (tex != null)
            {
                Resources.UnloadAsset(tex);
                tex = null;
            }

            AssetsReporterUtils.AddCountDictionary(this.spriteTagSet, importer.spritePackingTag);
            AssetsReporterUtils.AddCountDictionary(this.textureFormatSet, format);
            AssetsReporterUtils.AddCountDictionary(this.textureTypeSet, type);
        }