예제 #1
0
    /// <summary>
    /// 获取版本号
    /// </summary>
    public static string GetLocalPatchVersion()
    {
        string version = string.Empty;

        if (string.IsNullOrEmpty(AppConst.Version))
        {
            if (File.Exists(Util.DataPath + AppConst.PatchList))
            {
                FilesConfig filelist = JsonHelp.LoadFromJsonFile <FilesConfig>(Util.DataPath + AppConst.PatchList);
                if (filelist != null)
                {
                    string versionFloder = filelist.VerRevision.GetTxt();
                    version = versionFloder;
                }
            }
        }
        else
        {
            version = AppConst.Version;
        }
        return(version);
    }
예제 #2
0
    IEnumerator OnExtractResource()
    {
        string        dataPath = Util.DataPath;         //数据目录
        string        resPath  = Util.AppContentPath(); //游戏包资源目录
        StringBuilder kTips    = null;

        if (Directory.Exists(dataPath))
        {
            Directory.Delete(dataPath, true);
        }
        Directory.CreateDirectory(dataPath);

        string infile  = resPath + AppConst.PublishServerList;
        string outfile = dataPath + AppConst.PublishServerList;

        if (File.Exists(outfile))
        {
            File.Delete(outfile);
        }

        string message = "正在解包文件:>" + AppConst.PublishServerList;

        Util.Log("Serverlist", infile);
        Util.Log("Serverlist", outfile);
        if (Application.platform == RuntimePlatform.Android)
        {
            WWW www = new WWW(infile);
            yield return(www);

            if (www.isDone)
            {
                File.WriteAllBytes(outfile, www.bytes);
            }
            www.Dispose();
            www = null;
            yield return(0);
        }
        else
        {
            File.Copy(infile, outfile, true);
        }
        yield return(new WaitForEndOfFrame());

        infile  = resPath + AppConst.PatchList;
        outfile = dataPath + AppConst.PatchList;
        if (File.Exists(outfile))
        {
            File.Delete(outfile);
        }
        message = "正在解包文件:>" + AppConst.PatchList;
        Util.Log("Game", infile);
        Util.Log("Game", outfile);
        if (Application.platform == RuntimePlatform.Android)
        {
            WWW www = new WWW(infile);
            yield return(www);

            if (www.isDone)
            {
                File.WriteAllBytes(outfile, www.bytes);
            }
            www.Dispose();
            www = null;
            yield return(0);
        }
        else
        {
            File.Copy(infile, outfile, true);
        }
        yield return(new WaitForEndOfFrame());

        //释放所有文件到数据目录
        FilesConfig    filelist    = JsonHelp.LoadFromJsonFile <FilesConfig>(outfile);
        List <ResInfo> mShardInfos = filelist.mShardInfos;
        int            filesLen    = mShardInfos.Count;
        int            cur         = 0;

        for (int i = 0; i < filesLen; i++)
        {
            string f = mShardInfos[i].ResName;
            infile  = resPath + f; //
            outfile = dataPath + f;
            cur++;
            float value = cur / (float)filesLen;
            message = "正在解包文件:>" + f;

            kTips = new StringBuilder();
            kTips.Append(message);
            kTips.Append(string.Format("{0:P}", value));
            AppFacade.Instance.SendMessageCommand(NotiConst.UPDATE_MESSAGE, kTips.ToString());
            AppFacade.Instance.SendMessageCommand(NotiConst.UPDATE_PROGRESS, value);
            string dir = Path.GetDirectoryName(outfile);
            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            if (Application.platform == RuntimePlatform.Android)
            {
                WWW www = new WWW(infile);
                yield return(www);

                if (www.isDone)
                {
                    File.WriteAllBytes(outfile, www.bytes);
                }
                www.Dispose();
                www = null;
                yield return(0);
            }
            else
            {
                if (File.Exists(outfile))
                {
                    File.Delete(outfile);
                }
                File.Copy(infile, outfile, true);
            }
            yield return(new WaitForEndOfFrame());
        }
        message = "解包完成!!!";
        AppFacade.Instance.SendMessageCommand(NotiConst.UPDATE_MESSAGE, message);
        yield return(new WaitForSeconds(0.1f));

        message = string.Empty;
        if (AppConst.UpdateMode)
        {
            StartCoroutine(OnUpdateResource());//释放完成,开始启动更新资源
        }
        else
        {
            OnResourceInited();
            Invoke("OnUpdateFinsh", 0.1f);
        }
    }