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("]"); }
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("}"); }
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"); }
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("}"); }
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); }
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"); }