Files
TEngine/Assets/GameMain/Scripts/GameProcedure/ProcedureResourcesInit.cs
ALEXTANG 74092e6399 事件系统优化更新
事件系统优化更新
1.使用静态代替单例,静态方法调用时候内存地址无需二次偏移定位
2.UI事件在关闭UI时自动反监听
2022-10-26 15:14:04 +08:00

49 lines
1.6 KiB
C#

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