private string GetHierarchyAssetsListJson()
        {
            var assets = EditorUtility.CollectDependencies(GameObject.FindObjectsOfType(typeof(GameObject)));
            Dictionary <string, APHierarchyAsset> realAssets = new Dictionary <string, APHierarchyAsset>();

            foreach (var item in assets)
            {
                var assetPath = AssetDatabase.GetAssetPath(item);

                if (string.IsNullOrEmpty(assetPath) ||
                    assetPath.Contains("unity_builtin_extra") ||
                    assetPath.Contains("unity default resources") ||
                    assetPath.Contains("unity editor resources"))
                {
                    continue;
                }

                var guid = AssetDatabase.AssetPathToGUID(assetPath);
                if (realAssets.ContainsKey(guid))
                {
                    Utility.UpdateJsonInAsset(realAssets[guid]);
                }
                else
                {
                    APHierarchyAsset aphAsset = new APHierarchyAsset();

                    if (Utility.IsModelPath(assetPath) && (item is AnimationClip))
                    {
                        aphAsset.Id   = Utility.GetAssetId(guid, Utility.GetLocalIndentifierOfObject(item).ToString());
                        aphAsset.Name = item.name;
                    }
                    else
                    {
                        aphAsset.Id   = guid;
                        aphAsset.Name = Utility.GetFileName(assetPath);
                    }

                    aphAsset.FileType = Utility.GetFileExtension(assetPath);
                    aphAsset.Icon     = APResources.GetIconID(assetPath, item is AnimationClip);
                    Utility.UpdateJsonInAsset(aphAsset);
                    realAssets.Add(guid, aphAsset);
                }
            }

            return(APCache.GetJsonFromList(realAssets.Values.ToArray()));
        }
        private string EncodeJsonFromList(List <APAsset> assets)
        {
            string json = APCache.GetJsonFromList(assets);

            return(CLZF2_Base64(json));
        }