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 static int UpdateLength { get { var list = OnUpdated?.GetInvocationList(); return list?.Length ?? 0; } } public static int FixedUpdateLength { get { var list = OnFixedUpdated?.GetInvocationList(); return list?.Length ?? 0; } } public static int LateUpdateLength { get { var list = OnLateUpdated?.GetInvocationList(); return list?.Length ?? 0; } } } }