|
|
|
|
// 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();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/************************************************************************************************************************/
|
|
|
|
|
}
|
|
|
|
|
}
|