com.alicizax.unity.tuyoogam.../Samples~/Space Shooter/GameScript/Runtime/PatchLogic/FsmNode/FsmDownloadPackageFiles.cs

40 lines
1.1 KiB
C#
Raw Permalink Normal View History

2025-09-02 19:21:49 +08:00
using System.Collections;
using UnityEngine;
using UniFramework.Machine;
using YooAsset;
public class FsmDownloadPackageFiles : IStateNode
{
private StateMachine _machine;
void IStateNode.OnCreate(StateMachine machine)
{
_machine = machine;
}
void IStateNode.OnEnter()
{
PatchEventDefine.PatchStepsChange.SendEventMessage("开始下载资源文件!");
GameManager.Instance.StartCoroutine(BeginDownload());
}
void IStateNode.OnUpdate()
{
}
void IStateNode.OnExit()
{
}
private IEnumerator BeginDownload()
{
var downloader = (ResourceDownloaderOperation)_machine.GetBlackboardValue("Downloader");
downloader.DownloadErrorCallback = PatchEventDefine.WebFileDownloadFailed.SendEventMessage;
downloader.DownloadUpdateCallback = PatchEventDefine.DownloadUpdate.SendEventMessage;
downloader.BeginDownload();
yield return downloader;
// 检测下载结果
if (downloader.Status != EOperationStatus.Succeed)
yield break;
_machine.ChangeState<FsmDownloadPackageOver>();
}
}