private IEnumerator DownloadVersionUpdate()
        {
            using (UnityWebRequest req = UnityWebRequest.Get(SystemConfig.GetFilePath("/", AppVersionInfoFile, false)))
            {
                UnityWebRequestAsyncOperation reqBin = req.SendWebRequest();
                yield return(reqBin);

                if (req.isNetworkError || req.isHttpError)
                {
                    // 重新下载
                    DebugUtils.Log(InfoType.Error, string.Format("DiffAssets : {0}", SystemConfig.GetFilePath("/", AppVersionInfoFile, false)));
                }
                else
                {
                    // 保存到 临时目录
                    string text = req.downloadHandler.text;
                    File.WriteAllText(SystemConfig.LocalTempDir + "/" + AppVersionInfoFile, text);
                    GameDataManager.ChangeDir(SystemConfig.LocalTempDir);
                    List <AppVersionUpdateData> newDataInfos = AppVersionUpdateData.Select((item) => { return(item.Start != null); });
                    GameDataManager.ClearFileData(AppVersionInfoFile);
                    GameDataManager.ChangeDir(SystemConfig.GameDataDir);
                    mVersionData = newDataInfos.Find((item) => { return(ContainVersion(item)); });
                }
            }
            if (mVersionData != null)
            {
                yield return(DownloadAssetBundles());
            }
        }
 private void Awake()
 {
     mAssetbunlesWebRequest = new List <UnityWebRequest>();
     mTotalSize             = 0;
     mDownloadSize          = 0;
     mTotalCount            = 0;
     mDownloadCount         = 0;
     mVersionData           = null;
 }
 protected override void OnDestroy()
 {
     base.OnDestroy();
     Finished      = null;
     SizeProgress  = null;
     CountProgress = null;
     mVersionData  = null;
     StopAllCoroutines();
 }
        private static bool ContainVersion(AppVersionUpdateData item)
        {
            Vector3Int version = SystemConfig.AppBaseVersion;

            if (item.Filters.Contains(version))
            {
                return(false);
            }
            if (item.Start.x <= version.x && item.End.x >= version.x)
            {
                if (item.Start.y <= version.y && item.End.y >= version.y)
                {
                    if (item.Start.z <= version.z && item.End.z >= version.z)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }