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");
        }
예제 #2
0
        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, "generateCollider", importer.addCollider).Append(",");
#if UNITY_2020_2_OR_NEWER
            AssetsReporterUtils.AddJsonObject(sb, "materialImportMode", importer.materialImportMode.ToString()).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "optimizeMeshPolygons", importer.optimizeMeshPolygons).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "optimizeMeshVertices", importer.optimizeMeshVertices).Append(",");
            // 互換性
            AssetsReporterUtils.AddJsonObject(sb, "optimizeMesh", importer.optimizeMeshVertices | importer.optimizeMeshPolygons).Append(",");
#else
            AssetsReporterUtils.AddJsonObject(sb, "importMaterials", importer.importMaterials).Append(",");
            AssetsReporterUtils.AddJsonObject(sb, "optimizeMesh", importer.optimizeMesh).Append(",");
#endif
#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("}");
        }