80 lines
1.7 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|