Ejemplo n.º 1
0
    /// <summary>
    /// 启动游戏所需要资源包校验,有需要则下载更新
    /// </summary>
    private void ResourceUpdateVerify()
    {
        CCsvDataManager.Instance.LocalABVerDataMgr.LoadLocalABVerDataFile();
        CCsvDataManager.Instance.SerABVerDataMgr.LoadServerABVerDataFile();

        //校验csv和大厅资源 assetbundle
        bool ResourceNeedUpdate = false;

        ResourceNeedUpdate |= CResVersionCompareUpdate.CompareABVersionAndUpdate(GameDefine.DependenciesAssetBundleName, true);
        ResourceNeedUpdate |= CResVersionCompareUpdate.CompareABVersionAndUpdate(GameDefine.CsvAssetbundleName, true);

#if !ScFish
        ResourceNeedUpdate |= CResVersionCompareUpdate.CompareABVersionAndUpdate(GameDefine.HallAssetbundleName, true);
        ResourceNeedUpdate |= CResVersionCompareUpdate.CompareABVersionAndUpdate(GameDefine.HallConstAssetBundleName, true);
        ResourceNeedUpdate |= CResVersionCompareUpdate.CompareABVersionAndUpdate(GameDefine.PokerAssetBundleName, true);
        ResourceNeedUpdate |= CResVersionCompareUpdate.CompareABVersionAndUpdate(GameDefine.HallBagIconAssetBundleName, true);
        ResourceNeedUpdate |= CResVersionCompareUpdate.CompareABVersionAndUpdate(GameDefine.HallAnimeAssetBundleName, true);
#endif

        //android平台下检测apk是否需要更新
        if (Application.platform == RuntimePlatform.Android)
        {
            bApkNeedUpdate = CResVersionCompareUpdate.CheckApkVerAndUpdate(m_SvrAppVerStr);
        }

        if (ResourceNeedUpdate || bApkNeedUpdate)
        {
            eLuancherState = LUANCHERSTATE.LuancherState_Downloading;
        }
        else
        {
            eLuancherState = LUANCHERSTATE.LuancherState_VerifyMD5;
        }
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 资源MD5检验
    /// </summary>
    private void ResourceMD5Verify()
    {
        //string hallAssetMd5str = GameCommon.GenerateFileMd5(GameDefine.AssetBundleSavePath + GameDefine.HallAssetbundleName);
        List <string> filelist        = DownLoadProcessMgr.Instance.DownloadOverFileNameList;
        bool          md5crcSuccessed = true;

        if (EnableResMD5CRC)
        {
            for (int i = 0; i < filelist.Count; i++)
            {
                CServerABVerData filesvrdata = CCsvDataManager.Instance.SerABVerDataMgr.GetServerABVerData(filelist[i]);

                if (filesvrdata == null)
                {
                    continue;
                }

                string filemd5 = GameCommon.GenerateFileMd5(GameDefine.AssetBundleSavePath + filelist[i]);
                if (filemd5.CompareTo(filesvrdata.AssetbundleMd5Str) != 0)
                {
                    File.Delete(GameDefine.AssetBundleSavePath + filelist[i]);
                    CResVersionCompareUpdate.CompareABVersionAndUpdate(filelist[i], true);
                    Debug.Log(filelist[i] + " md5 CRC fialed");
                    md5crcSuccessed = false;
                }
            }
        }

        DownLoadProcessMgr.Instance.DownloadOverFileNameList.Clear();
        if (md5crcSuccessed)
        {
            //apk更新下载完成执行安装
            if (bApkNeedUpdate)
            {
                eLuancherState = LUANCHERSTATE.LuancherState_InstallAPK;
            }
            else
            {
                eLuancherState = LUANCHERSTATE.LuancherState_StartGame;
            }
        }
        else
        {
            eLuancherState = LUANCHERSTATE.LuancherState_Downloading;
        }
    }