Exemplo n.º 1
0
    /// <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);
    }
Exemplo n.º 2
0
    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;
            }
        }
    }
Exemplo n.º 3
0
 public void Destroy()
 {
     gameResInfo      = null;
     progressHandler  = null;
     completedHandler = null;
     Destroy(this.gameObject);
 }
Exemplo n.º 4
0
    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);
    }