/// <summary> /// 比较版本号确定是否需要下载。 /// </summary> /// <param name="gameName"></param> /// <returns></returns> public GameVersionState GetGameResVersionState(string gameName) { if (!_gameResfileInfoDict.ContainsKey(gameName)) { return(GameVersionState.NewestVersion); } if (_gameVersionStateDict.ContainsKey(gameName)) { return(_gameVersionStateDict[gameName]); } GameResFileInfo gameResFileInfo = _gameResfileInfoDict[gameName]; GameVersionState totalState = GameVersionState.NewestVersion; foreach (DownLoadFileInfo info in gameResFileInfo.infoList) { GameVersionState state = CheckOnceFileInfo(info); if (state == GameVersionState.UnLoad) { return(GameVersionState.UnLoad); } else if (state == GameVersionState.OldVersion) { totalState = state; } } return(totalState); }
private void StartDownLoad(GameResFileInfo resInfo) { if (IsLoading) { return; } IsLoading = true; IsDone = false; Progress = 0; gameResInfo = resInfo; string localfolderPath = URLFactory.GetLocalGameResSaveFolder(resInfo.gameName); string tagfolderPath = URLFactory.GetLocalGameTagFolder(resInfo.gameName); if (!Directory.Exists(localfolderPath)) { Directory.CreateDirectory(localfolderPath); } if (!Directory.Exists(tagfolderPath)) { Directory.CreateDirectory(tagfolderPath); } TotalBytesKB = 0; foreach (DownLoadFileInfo info in resInfo.infoList) { if (DownLoadManager.CheckOnceFileInfo(info) != GameVersionState.NewestVersion) { DownLoadThread downLoadThread = new DownLoadThread(); downLoadThreadList.Add(downLoadThread); downLoadThread.StartDownLoad(info); TotalBytesKB += info.size; } } }
public void Destroy() { gameResInfo = null; progressHandler = null; completedHandler = null; Destroy(this.gameObject); }
public static DownLoadCombin CreatToStartDownLoad(GameResFileInfo info, DownLoadCompletedHandler handler = null) { GameObject obj = new GameObject("downLoad_"); obj.name = "downLoad_" + obj.GetInstanceID(); obj.hideFlags = HideFlags.HideInHierarchy; GameObject.DontDestroyOnLoad(obj); DownLoadCombin dlm = obj.AddComponent <DownLoadCombin>(); dlm.completedHandler = handler; dlm.StartDownLoad(info); return(dlm); }