Exemple #1
0
 public static void Refresh()
 {
     if (loaclFileresInfo != null)
     {
         resInfo = JsonUtility.FromJson <ResJsonData>(JsonUtility.ToJson(loaclFileresInfo));
     }
 }
Exemple #2
0
        /// <summary>
        /// 重新查找所有资源
        /// </summary>
        public static void Rebuild()
        {
            if (File.Exists(ResConfig.ResJsonCfgFilePath))
            {
                string json = File.ReadAllText(ResConfig.ResJsonCfgFilePath);
                if (!string.IsNullOrEmpty(json))
                {
                    loaclFileresInfo = JsonUtility.FromJson <ResJsonData>(json);
                }
                else
                {
                    resInfo = new ResJsonData();
                }

                Refresh();
            }
            else
            {
                resInfo = new ResJsonData();
            }
        }
Exemple #3
0
        public static bool Update()
        {
            bool ret = false;

            if (resInfo == null)
            {
                return(ret);
            }

            if (loaclFileresInfo == null || loaclFileresInfo.groups.Count != resInfo.groups.Count ||
                loaclFileresInfo.resources.Count != resInfo.resources.Count)
            {
                ret = true;
            }
            else
            {
                if (loaclFileresInfo == null || loaclFileresInfo.groups.Count == resInfo.groups.Count)
                {
                    foreach (ResGroupCfg da in loaclFileresInfo.groups)
                    {
                        bool flag = false;
                        foreach (ResGroupCfg da2 in resInfo.groups)
                        {
                            if (da.groupName == da2.groupName && !ListIsSame(da.keys, da2.keys))
                            {
                                flag = true;
                                break;
                            }
                        }

                        if (flag)
                        {
                            ret = true;
                            break;
                        }
                    }

                    if (!ListIsSame(loaclFileresInfo.groups, resInfo.groups))
                    {
                        ret = true;
                    }
                }

                if (loaclFileresInfo == null || loaclFileresInfo.resources.Count == resInfo.resources.Count)
                {
                    foreach (ResInfoData da in loaclFileresInfo.resources)
                    {
                        ResInfoData da2 = resInfo.GetResInfo(da.address);
                        if (da2 == null || da.IsDirty(da2))
                        {
                            ret = true;
                            break;
                        }
                    }
                }
            }

            if (!ret)
            {
                return(false);
            }
            string jsonStr = JsonUtility.ToJson(resInfo, true);

            loaclFileresInfo = JsonUtility.FromJson <ResJsonData>(jsonStr);
            if (!System.IO.Directory.Exists(Path.GetDirectoryName(ResConfig.ResJsonCfgFilePath)))
            {
                System.IO.Directory.CreateDirectory(Path.GetDirectoryName(ResConfig.ResJsonCfgFilePath));
            }

            File.WriteAllText(ResConfig.ResJsonCfgFilePath, jsonStr);
            UnityEditor.AssetDatabase.SaveAssets();
            UnityEditor.AssetDatabase.Refresh();

            return(true);
        }