using UnityEngine;
namespace TEngine.Runtime
{
///
/// 流程加载器 - 资源初始化
///
public class ProcedureResourcesInit : ProcedureBase
{
public static int OnInitResourceCompleteEvent = StringId.StringToHash("OnInitResourceComplete");
private bool m_initResourceComplete = false;
protected override void OnEnter(IFsm procedureOwner)
{
base.OnEnter(procedureOwner);
GameEvent.AddEventListener(OnInitResourceCompleteEvent, OnInitResourceComplete);
m_initResourceComplete = false;
LoaderUtilities.DelayFun((() =>
{
GameEvent.Send(OnInitResourceCompleteEvent);
}),new WaitForSeconds(1f));
}
protected override void OnUpdate(IFsm procedureOwner, float elapseSeconds, float realElapseSeconds)
{
base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);
if (m_initResourceComplete)
{
ChangeState(procedureOwner);
}
}
protected override void OnLeave(IFsm procedureOwner, bool isShutdown)
{
base.OnLeave(procedureOwner, isShutdown);
GameEvent.RemoveEventListener(OnInitResourceCompleteEvent, OnInitResourceComplete);
}
private void OnInitResourceComplete()
{
m_initResourceComplete = true;
Log.Info("OnInitResourceComplete 初始化资源完成");
}
}
}