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; } } } } }