예제 #1
0
    private void OnUpdateFileComplete(DownFileInfo info)
    {
        Debug.LogFormat("OnUpdateFileComplete: {0}", info.fileName);
        string writeFile = Path.Combine(PathUtil.ReadWritePath, info.fileName);

        FileUtil.WriteFile(writeFile, info.fileData.data);
    }
예제 #2
0
    private void OnDownloadReadonlyPathFilelistComplete(DownFileInfo info)
    {
        m_ReadonlyPathFileListData = info.fileData.data;
        List <DownFileInfo> fileInfos = GetFileInfos(info.fileData.text, PathUtil.ReadonlyPath);

        StartCoroutine(DownloadFiles(fileInfos, OnReleaseFileComplete, OnReleaseAllFilesComplete));
    }
예제 #3
0
    private void ReleaseResources()
    {
        string       url  = Path.Combine(PathUtil.ReadonlyPath, AppConst.FileListName);
        DownFileInfo info = new DownFileInfo();

        info.url = url;
        StartCoroutine(DownloadFile(info, OnDownloadReadonlyPathFilelistComplete));
    }
예제 #4
0
    private void CheckUpdate()
    {
        string       url  = Path.Combine(AppConst.ResourceUrl, AppConst.FileListName);
        DownFileInfo info = new DownFileInfo();

        info.url = url;
        StartCoroutine(DownloadFile(info, OnDownLoadServerFileListComplete));
    }
예제 #5
0
    private List <DownFileInfo> GetFileInfos(string fileData, string path)
    {
        string content = fileData.Trim().Replace("\r", "");

        string[]            files             = content.Split('\n');
        List <DownFileInfo> downloadFileInfos = new List <DownFileInfo>(files.Length);

        for (int i = 0; i < files.Length; ++i)
        {
            string[]     info     = files[i].Split('|');
            DownFileInfo fileInfo = new DownFileInfo();
            fileInfo.fileName = info[1];
            fileInfo.url      = Path.Combine(path, info[1]);
            downloadFileInfos.Add(fileInfo);
        }
        return(downloadFileInfos);
    }
예제 #6
0
    /// <summary>
    /// 下载单个文件
    /// </summary>
    /// <param name="url"></param>
    /// <returns></returns>
    IEnumerator DownloadFile(DownFileInfo fileInfo, Action <DownFileInfo> Complete)
    {
        UnityWebRequest webRequest = UnityWebRequest.Get(fileInfo.url);

        yield return(webRequest.SendWebRequest());

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            Debug.LogError("下载文件出错: " + fileInfo.url);
            yield break;
            // 重试逻辑
            // DoSomething...
        }
        fileInfo.fileData = webRequest.downloadHandler;
        Complete?.Invoke(fileInfo);
        webRequest.Dispose();
    }
예제 #7
0
    private void OnDownLoadServerFileListComplete(DownFileInfo info)
    {
        m_ServerFileListData = info.fileData.data;
        List <DownFileInfo> fileInfos     = GetFileInfos(info.fileData.text, AppConst.ResourceUrl);
        List <DownFileInfo> downListFiles = new List <DownFileInfo>();

        for (int i = 0; i < fileInfos.Count; ++i)
        {
            string localFile = Path.Combine(PathUtil.ReadWritePath, fileInfos[i].fileName);
            if (!FileUtil.IsExists(localFile))
            {
                fileInfos[i].url = Path.Combine(AppConst.ResourceUrl, fileInfos[i].fileName);
                downListFiles.Add(fileInfos[i]);
            }
        }
        if (downListFiles.Count > 0)
        {
            StartCoroutine(DownloadFiles(downListFiles, OnUpdateFileComplete, OnUpdateAllFilesComplete));
        }
        else
        {
            EnterGame();
        }
    }
예제 #8
0
 public void DownFile(DownFileInfo downFileInfo)
 {
     throw new System.NotImplementedException();
 }