DESKTOP-5RP3AKU\Jisol 44c3ea001a 提交
2024-10-16 02:48:23 +08:00

89 lines
2.7 KiB
C#

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);
}
/// <summary>
/// 资源更新进度
/// </summary>
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()
{
}
}
}