46 lines
1.3 KiB
C#
46 lines
1.3 KiB
C#
![]() |
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
using UniFramework.Machine;
|
|||
|
using YooAsset;
|
|||
|
|
|||
|
public class FsmUpdatePackageManifest : IStateNode
|
|||
|
{
|
|||
|
private StateMachine _machine;
|
|||
|
|
|||
|
void IStateNode.OnCreate(StateMachine machine)
|
|||
|
{
|
|||
|
_machine = machine;
|
|||
|
}
|
|||
|
void IStateNode.OnEnter()
|
|||
|
{
|
|||
|
PatchEventDefine.PatchStepsChange.SendEventMessage("更新资源清单!");
|
|||
|
GameManager.Instance.StartCoroutine(UpdateManifest());
|
|||
|
}
|
|||
|
void IStateNode.OnUpdate()
|
|||
|
{
|
|||
|
}
|
|||
|
void IStateNode.OnExit()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
private IEnumerator UpdateManifest()
|
|||
|
{
|
|||
|
var packageName = (string)_machine.GetBlackboardValue("PackageName");
|
|||
|
var packageVersion = (string)_machine.GetBlackboardValue("PackageVersion");
|
|||
|
var package = YooAssets.GetPackage(packageName);
|
|||
|
var operation = package.UpdatePackageManifestAsync(packageVersion);
|
|||
|
yield return operation;
|
|||
|
|
|||
|
if (operation.Status != EOperationStatus.Succeed)
|
|||
|
{
|
|||
|
Debug.LogWarning(operation.Error);
|
|||
|
PatchEventDefine.PackageManifestUpdateFailed.SendEventMessage();
|
|||
|
yield break;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_machine.ChangeState<FsmCreateDownloader>();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|