40 lines
1.1 KiB
C#
40 lines
1.1 KiB
C#
![]() |
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>();
|
|||
|
}
|
|||
|
}
|