using System; using System.Collections.Generic; using UnityEngine; using Newtonsoft.Json; namespace BF { public class LaunchRequester { public bool isNewPackage; // 是否是新包覆盖 public bool isHotUpdate; // 热更 public bool isAutoRepair; // 自动修复 public AssetBundle firstAb; // 首包 public string languageName; // 当前选择的多语言 public bool downloadLanguage; // 下载多语言 // public string persistentAbccMD5; // 持久化目录abConfig md5 public string persistentAbccVersion; // 持久化目录abConfig里的版本号 public string curVersionTempDir; // 当前版本对应的临时下载目录 public BFVersionInfo versionInfo; // 版本信息 public string firstChoiceCDN; // 首选cdn地址 public string backupCDN; // 备用cdn地址 public bool launchSucceed; public AssetBundleConfigCollection streamingAbcc; // 包内abConfig public AssetBundleConfigCollection persistentAbcc; // 持久化目录abConfig public AssetBundleConfigCollection versionAbcc; // 热更版本abConfig public byte[] streamingData; // 包内abConfig数据 public byte[] versionData; // 下载的abConfig数据 public List preCheckMissingList; // 预检查丢失列表 public List preCheckOverList; // 预检查冗余列表 public List downloadList; // 下载列表 public List deleteList; // 删除文件列表 public Action preCheckNextProcessAction; // 预检查下一处理阶段 public Action> FirstRequestAction { get; private set; } // 首次拉更新 public Action DialogAction { get; private set; } // 单选对话框 public Action DialogComplexAction { get; private set; } // 多选对话框 public Action HideDialogAction { get; private set; } // 隐藏对话框 public Action UpdateSilderAction { get; private set; } // 进度条 public Action HideSliderAction { get; private set; } // 隐藏进度条 public Action OnPreCheckEnd { get; private set; } // 当预检查完成 public Action OnGetTotalLength { get; private set; } // 获取到更新总大小 public Action OnDownloading { get; private set; } // 当前下载量更新 public Action OnLaunchSucc { get; private set; } // 启动成功 public LaunchRequester() { preCheckMissingList = new List(); preCheckOverList = new List(); downloadList = new List(); deleteList = new List(); AddLaunchSuccCallback(() => { launchSucceed = true; }); } public void SetLanguageName(string languageName) { this.languageName = languageName; } public void SetFirstRequestAction(Action> action) { FirstRequestAction = action; } public void SetVersionInfo(string json) { versionInfo = JsonConvert.DeserializeObject(json); } public void SetShowDialogAction(Action action) { DialogAction = action; } public void SetShowDialogComplexAction(Action action) { DialogComplexAction = action; } public void SetHideDialogAction(Action action) { HideDialogAction = action; } public void SetUpdateSliderAction(Action action) { UpdateSilderAction = action; } public void SetHideSliderAction(Action action) { HideSliderAction = action; } public void SetPreCheckEndCallback(Action action) { OnPreCheckEnd = action; } public void SetGetTotalLengthCallback(Action action) { OnGetTotalLength = action; } public void SetDownloadingCallback(Action action) { OnDownloading = action; } public void AddLaunchSuccCallback(Action action) { OnLaunchSucc += action; } public void ClearLaunchSuccCallback() { OnLaunchSucc = null; } /// /// 进入预检查下一阶段 /// public void PreCheckNextProcess() { preCheckNextProcessAction?.Invoke(); } } }