示例#1
0
    /// <summary>
    /// 同步大厅资源配置数据
    /// </summary>
    /// <param name="lobbyResConfig"></param>
    public void SyncLobbyResConfig(LobbyResConfig lobbyResConfig)
    {
        LocalTableResConfig.lobbyResConfig = lobbyResConfig;

        ABAssetDataMgr.Instance.SyncLobbyAssetInfo(LocalTableResConfig);

        string xmlPath = ABConfiger.GetSandboxFilePath(TableGameRes.FILE_NAME);

        XMLSerializer.Save <TableGameRes>(xmlPath, LocalTableResConfig);
    }
示例#2
0
    /// <summary>
    /// 初始大厅下载文件
    /// </summary>
    private void InitLobbyDownLoadFiles()
    {
        ABAssetDataMgr abAssetMgr = ABAssetDataMgr.Instance;

        // 比对lua文件
        LobbyResConfig serverLobbyRes = serverTableResConfig.lobbyResConfig;
        List <ResData> sLuaDatas      = serverLobbyRes.scripts.luaFiles;

        foreach (ResData sLuaData in sLuaDatas)
        {
            string  abName  = sLuaData.name;
            ResData luaData = abAssetMgr.FindResData(abName, ResourceType.RES_LUA);
            if (luaData != null && sLuaData.md5 == luaData.md5)
            {
                continue;
            }

            downLoadMgr.AddDownLoadFile(sLuaData);
        }

        // 比对shader文件
        ResData ssData = serverLobbyRes.shader;
        ResData lsData = abAssetMgr.FindResData(ssData.name);

        if (lsData != null && ssData.md5 != lsData.md5)
        {
            downLoadMgr.AddDownLoadFile(ssData);
        }

        // 比对数据文件
        ResData sData = serverLobbyRes.datas;
        ResData lData = abAssetMgr.FindResData(sData.name);

        if (lData != null && sData.md5 != lData.md5)
        {
            downLoadMgr.AddDownLoadFile(sData);
        }

        // 比对公有资源
        ComparisonFiles(serverLobbyRes.common);
        // 比热更新资源
        ComparisonFiles(serverLobbyRes.hotUpdate);
        // 比对登录资源
        ComparisonFiles(serverLobbyRes.login);
        // 比对大厅资源
        ComparisonFiles(serverLobbyRes.lobby);
        // 比对游戏资源
        ComparisonFiles(serverLobbyRes.game);
    }
示例#3
0
    private bool CheckLobbyHotUpdate()
    {
        if (!TableGameConfig.openHotUpdate || !TableGameConfig.openLobbyHp)
        {
            return(false);
        }

        LobbyResConfig lobbyResConfig = LocalResConfigMgr.Instance.LocalLobbyResConfig;

        if (string.IsNullOrEmpty(TableGameConfig.version) ||
            string.IsNullOrEmpty(lobbyResConfig.version) ||
            CheckVersion(TableGameConfig.version, lobbyResConfig.version) <= 0)
        {
            Debug.Log("Lobby Version code is same!");
            return(false);
        }

        return(true);
    }
示例#4
0
    // 检查是否下载服务器资源配置表
    private bool CheckDownLoadResConfig()
    {
        // 检查是否需要热更新
        if (!TableGameConfig.openHotUpdate)
        {
            return(false);
        }

        LocalResConfigMgr localResConfigMgr = LocalResConfigMgr.Instance;

        // 比对大厅资源版本
        LobbyResConfig lobbyResConfig = localResConfigMgr.LocalLobbyResConfig;

        if (TableGameConfig.openLobbyHp && CheckVersion(TableGameConfig.version, lobbyResConfig.version) > 0)
        {
            return(true);
        }

        // 判断是否游戏是否需要更新
        if (!TableGameConfig.openGameHp)
        {
            return(false);
        }

        // 比对游戏资源版本
        GameResConfig gameResConfig = localResConfigMgr.LocalGameResConfig;
        var           enumerator    = TableGameConfig.gameVersion.GetEnumerator();

        while (enumerator.MoveNext())
        {
            int     productId = enumerator.Current.Key;
            string  gameVer   = enumerator.Current.Value;
            BaseRes gameRes   = gameResConfig.FindProductRes(productId);
            if (gameRes == null || CheckVersion(gameVer, gameRes.version) > 0)
            {
                return(true);
            }
        }

        return(false);
    }
示例#5
0
    private void LoadLobbyAssetsInfo(TableGameRes resConfig)
    {
        LobbyResConfig lobbyResConfig = resConfig.lobbyResConfig;

        ResData data = lobbyResConfig.shader;

        if (data != null)
        {
            lobbyAssetsInfo.Add(data.name, data);
        }

        data = lobbyResConfig.datas;
        if (data != null)
        {
            lobbyAssetsInfo.Add(data.name, data);
        }

        LoadAssetsInfo(lobbyResConfig.common, lobbyAssetsInfo);
        LoadAssetsInfo(lobbyResConfig.hotUpdate, lobbyAssetsInfo);
        LoadAssetsInfo(lobbyResConfig.login, lobbyAssetsInfo);
        LoadAssetsInfo(lobbyResConfig.lobby, lobbyAssetsInfo);
        LoadAssetsInfo(lobbyResConfig.game, lobbyAssetsInfo);
    }
示例#6
0
 public TableGameRes()
 {
     lobbyResConfig = new LobbyResConfig();
     gameResConfig  = new GameResConfig();
 }