using System.Collections; using System.Collections.Generic; using UnityEngine; using UniFramework.Machine; using YooAsset; public class FsmCreateDownloader : IStateNode { private StateMachine _machine; void IStateNode.OnCreate(StateMachine machine) { _machine = machine; } void IStateNode.OnEnter() { PatchEventDefine.PatchStepsChange.SendEventMessage("创建资源下载器!"); CreateDownloader(); } void IStateNode.OnUpdate() { } void IStateNode.OnExit() { } void CreateDownloader() { var packageName = (string)_machine.GetBlackboardValue("PackageName"); var package = YooAssets.GetPackage(packageName); int downloadingMaxNum = 10; int failedTryAgain = 3; var downloader = package.CreateResourceDownloader(downloadingMaxNum, failedTryAgain); _machine.SetBlackboardValue("Downloader", downloader); if (downloader.TotalDownloadCount == 0) { Debug.Log("Not found any download files !"); _machine.ChangeState(); } else { // 发现新更新文件后,挂起流程系统 // 注意:开发者需要在下载前检测磁盘空间不足 int totalDownloadCount = downloader.TotalDownloadCount; long totalDownloadBytes = downloader.TotalDownloadBytes; PatchEventDefine.FoundUpdateFiles.SendEventMessage(totalDownloadCount, totalDownloadBytes); } } }