Example #1
0
    private void ReportAudio(StringBuilder sb, AudioImporter importer)
    {
        /// common
        sb.Append("{");
        AssetsReporterUtils.AddJsonObject(sb, "path", importer.assetPath).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "forceToMono", importer.forceToMono).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "loadInBackground", importer.loadInBackground).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "preloadAudioData", importer.preloadAudioData).Append(",");
        // platform setting
        AudioImporterSampleSettings setting = importer.defaultSampleSettings;

        if (!string.IsNullOrEmpty(platform) && importer.ContainsSampleSettingsOverride(platform))
        {
            setting = importer.GetOverrideSampleSettings(platform);
        }
        AssetsReporterUtils.AddJsonObject(sb, "loadType", setting.loadType.ToString()).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "compressionFormat", setting.compressionFormat.ToString()).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "sampleRateSetting", setting.sampleRateSetting.ToString()).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "sampleRateOverride", setting.sampleRateOverride.ToString());
        sb.Append("}");

        AssetsReporterUtils.AddCountDictionary(this.loadTypeSet, setting.loadType);
        AssetsReporterUtils.AddCountDictionary(this.ratingSet, setting.sampleRateOverride);
        AssetsReporterUtils.AddCountDictionary(this.compressSet, setting.compressionFormat);
    }
    private void ReportModelAnimationClips(StringBuilder sb, ModelImporterClipAnimation[] clipAnimations)
    {
        if (clipAnimations == null)
        {
            AssetsReporterUtils.AddJsonObjectArray(sb, "animationClips", null);
        }
        bool isFirst = true;

        sb.Append("animationClips:[");
        for (int i = 0; i < clipAnimations.Length; ++i)
        {
            if (isFirst)
            {
                isFirst = false;
            }
            else
            {
                sb.Append(",");
            }
            sb.Append("{");
            AssetsReporterUtils.AddJsonObject(sb, "name", clipAnimations[i].name).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "firstFrame", clipAnimations[i].firstFrame).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "lastFrame", clipAnimations[i].lastFrame).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "wrapMode", clipAnimations[i].wrapMode.ToString()).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "loop", clipAnimations[i].loop);
            sb.Append("}");
        }
        sb.Append("]");
    }
    private void ReportDependsAssets(StringBuilder sb)
    {
        foreach (var asset in this.resourceAssetList)
        {
            this.dependSet.Remove(asset);
        }
        bool isFirst = true;

        sb.Append("g_resources_depends=[");
        foreach (var depend in dependSet)
        {
            if (isFirst)
            {
                isFirst = false;
            }
            else
            {
                sb.Append(",");
            }
            sb.Append("\n");
            sb.Append("{");
            AssetsReporterUtils.AddJsonObject(sb, "path", depend).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "type", this.GetFileType(depend).ToString());
            sb.Append("}");
        }
        sb.Append("];");
    }
    private void ReportDependsAssetBundle(StringBuilder sb)
    {
        bool isFirst = true;

        sb.Append("depends:[");
        List <AssetBundleIdentify> list = new List <AssetBundleIdentify>(this.dependBundle);

        list.Sort((a, b) => {
            int tmp = a.importerType.CompareTo(b.importerType);
            if (tmp != 0)
            {
                return(tmp);
            }
            return(a.file.CompareTo(b.file));
        });
        foreach (var d in list)
        {
            if (isFirst)
            {
                isFirst = false;
            }
            else
            {
                sb.Append(",");
            }
            sb.Append("{");
            AssetsReporterUtils.AddJsonObject(sb, "file", d.file).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "name", d.name).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "valiant", d.valiant).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "importerType", d.importerType.Replace("Importer", ""));
            sb.Append("}");
        }
        sb.Append("]");
    }
Example #5
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 (!AssetsReporterUtils.IsVisibleInWebBrowserImage(importer.assetPath) && tex != null)
        {
            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);
    }
    private void ReportModel(StringBuilder sb, ModelImporter importer)
    {
        sb.Append("{");
        AssetsReporterUtils.AddJsonObject(sb, "path", importer.assetPath).Append(",");
        if (this.isPreviewImage)
        {
            var obj = AssetDatabase.LoadAssetAtPath <GameObject>(importer.assetPath);

            string preview = AssetsReporterUtils.GetAssetPreview(importer, obj, true);
            AssetsReporterUtils.AddJsonObject(sb, "preview", preview).Append(",");

            AssetsReporterUtils.AddJsonObject(sb, "vertexNum", AssetsReporterUtils.GetPolygonNum(obj)).Append(",");
        }
        AssetsReporterUtils.AddJsonObject(sb, "isReadable", importer.isReadable).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "scaleFactor", importer.globalScale).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "meshCompression", importer.meshCompression.ToString()).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "optimizeMesh", importer.optimizeMesh).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "generateCollider", importer.addCollider).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "importMaterials", importer.importMaterials).Append(",");
#if UNITY_5_4_OR_NEWER
        AssetsReporterUtils.AddJsonObject(sb, "normalMode", importer.importNormals.ToString()).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "tangentMode", importer.importTangents.ToString()).Append(",");
#else
        AssetsReporterUtils.AddJsonObject(sb, "normalMode", importer.normalImportMode.ToString()).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "tangentMode", importer.tangentImportMode.ToString()).Append(",");
#endif
        AssetsReporterUtils.AddJsonObject(sb, "importBlendShapes", importer.importBlendShapes).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "objectNum", importer.transformPaths.Length).Append(",");
        // rig
        AssetsReporterUtils.AddJsonObject(sb, "animationType", importer.animationType.ToString()).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "generateAnimations", importer.generateAnimations.ToString()).Append(",");
        string srcAvatar = GetAvatarName(importer.animationType, importer.sourceAvatar);
        AssetsReporterUtils.AddJsonObject(sb, "sourceAvatar", srcAvatar).Append(",");
        // animation
        AssetsReporterUtils.AddJsonObject(sb, "importAnimation", importer.importAnimation).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "animationCompression", importer.animationCompression.ToString()).Append(",");
        if (importer.clipAnimations != null && importer.clipAnimations.Length > 0)
        {
            ReportModelAnimationClips(sb, importer.clipAnimations);
        }
        else
        {
            ReportModelAnimationClips(sb, importer.defaultClipAnimations);
        }
        //
        AssetsReporterUtils.AddCountDictionary(rigSet, importer.animationType);
        AssetsReporterUtils.AddCountDictionary(scaleSet, importer.globalScale);
        if (!string.IsNullOrEmpty(srcAvatar))
        {
            AssetsReporterUtils.AddCountDictionary(sourceAvatarSet, srcAvatar);
        }
        sb.Append("}");
    }
    private void ReportOneResource(StringBuilder sb, string assetPath)
    {
        var depends = AssetDatabase.GetDependencies(new string[] { assetPath });

        Type type = this.GetFileType(assetPath);

        AssetsReporterUtils.AddCountDictionary(this.typeDict, type);

        sb.Append("{");
        AssetsReporterUtils.AddJsonObject(sb, "path", assetPath).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "type", type.ToString()).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "parentDir", this.GetParentDirectory(assetPath)).Append(",");

        sb.Append("depends:[");
        bool isFirst = true;

        foreach (var d in depends)
        {
            if (d == assetPath)
            {
                continue;
            }
            if (isFirst)
            {
                isFirst = false;
            }
            else
            {
                sb.Append(",");
            }
            sb.Append("{");
            AssetsReporterUtils.AddJsonObject(sb, "path", d).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "type", this.GetFileType(d).ToString());
            sb.Append("}");
        }
        sb.Append("]");
        foreach (var depend in depends)
        {
            if (!this.dependSet.Contains(depend))
            {
                this.dependSet.Add(depend);
            }
        }
        sb.Append("}");
    }
Example #8
0
    private StringBuilder ReportSceneDependAssets(StringBuilder sb, string scenePath)
    {
        var depends = AssetDatabase.GetDependencies(scenePath, true);

        sb.Append("depends:[");
        if (depends != null)
        {
            bool firstFlag = true;
            foreach (var depend in depends)
            {
                if (depend == null)
                {
                    continue;
                }
                if (firstFlag)
                {
                    firstFlag = false;
                }
                else
                {
                    sb.Append(',');
                }
                var importer = AssetImporter.GetAtPath(depend);
                var obj      = AssetDatabase.LoadAssetAtPath <UnityEngine.Object>(importer.assetPath);
                sb.Append("{");
                AssetsReporterUtils.AddJsonObject(sb, "path", depend).Append(",");
                AssetsReporterUtils.AddJsonObject(sb, "importer", importer.GetType().ToString());

                if (obj != null)
                {
                    sb.Append(",");
                    AssetsReporterUtils.AddJsonObject(sb, "type", obj.GetType().ToString());
                }
                else
                {
                    Debug.Log("loaderror " + depend + "::" + importer.name);
                }
                obj = null;
                sb.Append("}\n");
            }
        }
        Resources.UnloadUnusedAssets();
        sb.Append("]\n");
        return(sb);
    }
    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);
                }
                obj = null;
            }
            sb.Append("}");
        }
        sb.Append("],\n");
        this.RemoveDependsAssetBundle(paths);
        this.ReportDependsAssetBundle(sb);
        sb.Append("}\n");
    }
Example #10
0
    private void ReportSceneAtPath(StringBuilder sb, string scenePath)
    {
        var scene = EditorSceneManager.OpenScene(scenePath);

        sb.Append("{");
        AssetsReporterUtils.AddJsonObject(sb, "buildIndex", scene.buildIndex).Append(",\n");
        AssetsReporterUtils.AddJsonObject(sb, "path", scenePath).Append(",\n");
        AssetsReporterUtils.AddJsonObject(sb, "sceneName", scene.name).Append(",\n");
        AssetsReporterUtils.AddJsonObject(sb, "rootCount", scene.rootCount).Append(",\n");

        ReportSceneDependAssets(sb, scenePath);
        sb.Append(",");

        var rootObjects = scene.GetRootGameObjects();

        int allGameObjectCount        = 0;
        int allComponentCount         = 0;
        int allMonoBehaviourCount     = 0;
        var componentsCountDictionary = new Dictionary <string, int>(1024);

        foreach (var rootObj in rootObjects)
        {
            allGameObjectCount += CountChildTransform(rootObj.transform);
            var childComponents    = rootObj.GetComponentsInChildren <Component>();
            var childMonoBehaviour = rootObj.GetComponentsInChildren <MonoBehaviour>();
            if (childComponents != null)
            {
                allComponentCount += childComponents.Length;
            }
            if (childMonoBehaviour != null)
            {
                allMonoBehaviourCount += childMonoBehaviour.Length;
            }
            AddToConpoenentCountDictionary(componentsCountDictionary, childComponents);
        }
        AssetsReporterUtils.AddJsonObject(sb, "allGameObjects", allGameObjectCount).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "allComponents", allComponentCount).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "allMonoBehaviour", allMonoBehaviourCount).Append(",");
        AssetsReporterUtils.AddJsonToContDictionary(sb, "componentCount", componentsCountDictionary);
        sb.Append("}");
    }
Example #11
0
    private void ReportTexture(StringBuilder sb, TextureImporter importer)
    {
        int w, h;
        var format  = importer.textureFormat;
        var type    = importer.textureType;
        int maxSize = importer.maxTextureSize;

        if (!importer.GetPlatformTextureSettings(this.platform, out maxSize, out format))
        {
            maxSize = importer.maxTextureSize;
            format  = importer.textureFormat;
        }

        var tex = GetTextureSize(importer, out w, out h) as Texture2D;

        sb.Append("{");
        if (!AssetsReporterUtils.IsVisibleInWebBrowserImage(importer.assetPath))
        {
            string preview = AssetsReporterUtils.SaveNotWebVisibleTextureToPreview(importer, tex);
            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, "isPow2", IsPow2Size(w, h)).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "maxSize", maxSize).Append(",");
        AssetsReporterUtils.AddJsonObject(sb, "textureFormat", format.ToString());
        sb.Append("}");
        if (tex != null)
        {
            Resources.UnloadAsset(tex);
            tex = null;
        }

        AssetsReporterUtils.AddCountDictionary(this.textureFormatSet, format);
        AssetsReporterUtils.AddCountDictionary(this.textureTypeSet, type);
    }
Example #12
0
    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");
    }