Beispiel #1
0
        // 5.比较文件数据生成下载列表
        private bool CheckDiff()
        {
            //	Debug.Log("Updater.CheckDiff");

            AssetIndexFile oldAssets = AssetIndexData.Instance().GetIndex();

            // 本地比服务器版本还新, 跳过更新步骤
            if (oldAssets.GetVersion() > _latest.GetVersion())
            {
                return(true);
            }

            // 检查是否大版本更新
            if (!VersionHelper.IsCompatible(oldAssets.GetVersion(), _latest.GetVersion()))
            {
                return(false);
            }

            // 文件比较
            var allAssets = _latest.FetchAll();

            _updateList = new List <AssetInfo>(allAssets.Count);
            _updateSize = 0;

            foreach (AssetInfo asset in allAssets)
            {
                if (asset == null)
                {
                    continue;
                }

                FileInfo fi = new FileInfo(asset.GetWritePath());

                // 检查是否匹配
                AssetInfo old = oldAssets.GetAssetInfo(asset.hash);
                if (old == null || old.IsDiff(asset) || old.IsDiff(fi))
                {
                    _updateList.Add(asset);
                    _updateSize += asset.size;
                }
            }

            return(true);
        }