using FairyGUI; using HotMain; using HotMain.SHGame.Procedure; using Launcher; using SHFrame; using YooAsset; namespace HotScripts.GameLauncher.FGui.Scripts { public class LauncherUI : UIBase { public UI_Launcher UIView => View as UI_Launcher; private long totalDownloadBytes = 0; public override void OnInit() { } public override void OnOpen(params object[] param) { //显示需要升级的大小 ResourcePackage rawFilePackage = YooAssets.GetPackage(ProcedureInitializePackage.RawFilePackageName); totalDownloadBytes += rawFilePackage.CreateResourceDownloader(10, 3, 60).TotalDownloadBytes; ResourcePackage defaultPackage = YooAssets.GetPackage(ProcedureInitializePackage.DefaultPackageName); totalDownloadBytes += defaultPackage.CreateResourceDownloader(10, 3, 60).TotalDownloadBytes; if (totalDownloadBytes <= 0) { UIView.m_title.text = "资源已经最新"; } else { UIView.m_title.text = $"需更新 {totalDownloadBytes} 字节资源"; } } public override void AddListener() { UIView.m_downloader.onClick.Add(OnDownloader); EventUtil.AddListener(HotMainEvent.DownloaderProgressUpdate,OnDownloaderProgressUpdate); } public override void RemoveListener() { UIView.m_downloader.onClick.Add(OnDownloader); EventUtil.RemoveListener(HotMainEvent.DownloaderProgressUpdate,OnDownloaderProgressUpdate); } private void OnDownloader(EventContext context) { EventUtil.DispatchEvent(HotMainEvent.StartDownloader); } /// /// 资源更新进度 /// private void OnDownloaderProgressUpdate(EventArgs eventargs) { int totalCount = (int)eventargs.args[0]; int currentCount = (int)eventargs.args[1]; long totalBytes = (long)eventargs.args[2]; long currentBytes = (long)eventargs.args[3]; if (currentBytes <= 0) { UIView.m_progress.value = 0; }else { UIView.m_progress.value = (currentBytes*100) / totalBytes; } UIView.m_title.text = $"文件总数:{totalCount}, 已下载文件数:{currentCount}, 下载总大小:{totalBytes}, 已下载大小:{currentBytes}"; } public override void OnClose() { } } }