// UltEvents // Copyright 2020 Kybernetik // using UnityEngine; namespace UltEvents { /// <summary> /// Holds <see cref="UltEvent"/>s which are called by various <see cref="MonoBehaviour"/> update events: /// <see cref="Update"/>, <see cref="LateUpdate"/>, and <see cref="FixedUpdate"/>. /// </summary> [AddComponentMenu(UltEventUtils.ComponentMenuPrefix + "Update Events")] [HelpURL(UltEventUtils.APIDocumentationURL + "/UpdateEvents")] [DisallowMultipleComponent] public class UpdateEvents : MonoBehaviour { /************************************************************************************************************************/ [SerializeField] private UltEvent _UpdateEvent; /// <summary>Invoked by <see cref="Update"/>.</summary> public UltEvent UpdateEvent { get { if (_UpdateEvent == null) _UpdateEvent = new UltEvent(); return _UpdateEvent; } set { _UpdateEvent = value; } } /// <summary>Invokes <see cref="UpdateEvent"/>.</summary> public virtual void Update() { if (_UpdateEvent != null) _UpdateEvent.Invoke(); } /************************************************************************************************************************/ [SerializeField] private UltEvent _LateUpdateEvent; /// <summary>Invoked by <see cref="LateUpdate"/>.</summary> public UltEvent LateUpdateEvent { get { if (_LateUpdateEvent == null) _LateUpdateEvent = new UltEvent(); return _LateUpdateEvent; } set { _LateUpdateEvent = value; } } /// <summary>Invokes <see cref="LateUpdateEvent"/>.</summary> public virtual void LateUpdate() { if (_LateUpdateEvent != null) _LateUpdateEvent.Invoke(); } /************************************************************************************************************************/ [SerializeField] private UltEvent _FixedUpdateEvent; /// <summary>Invoked by <see cref="FixedUpdate"/>.</summary> public UltEvent FixedUpdateEvent { get { if (_FixedUpdateEvent == null) _FixedUpdateEvent = new UltEvent(); return _FixedUpdateEvent; } set { _FixedUpdateEvent = value; } } /// <summary>Invokes <see cref="FixedUpdateEvent"/>.</summary> public virtual void FixedUpdate() { if (_FixedUpdateEvent != null) _FixedUpdateEvent.Invoke(); } /************************************************************************************************************************/ } }