Utils/Runtime/EventManager.cs
2021-08-16 16:05:42 +02:00

80 lines
1.7 KiB
C#

using UnityEngine;
namespace Utils
{
public class EventManager : MonoBehaviour
{
public delegate void UpdateAction();
public static event UpdateAction OnUpdated;
public delegate void FixedUpdateAction();
public static event FixedUpdateAction OnFixedUpdated;
public delegate void LateUpdateAction();
public static event LateUpdateAction OnLateUpdated;
private void Update()
{
OnUpdated?.Invoke();
}
private void FixedUpdate()
{
OnFixedUpdated?.Invoke();
}
private void LateUpdate()
{
OnLateUpdated?.Invoke();
}
public int UpdateLength
{
get
{
var list = OnUpdated?.GetInvocationList();
if (list != null)
{
return list.Length;
}
else
{
return 0;
}
}
}
public int FixedUpdateLength
{
get
{
var list = OnFixedUpdated?.GetInvocationList();
if (list != null)
{
return list.Length;
}
else
{
return 0;
}
}
}
public int LateUpdateLength
{
get
{
var list = OnLateUpdated?.GetInvocationList();
if (list != null)
{
return list.Length;
}
else
{
return 0;
}
}
}
}
}