You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
// UltEvents // Copyright 2020 Kybernetik //
|
|
|
|
|
|
|
|
|
|
using System.Collections;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace UltEvents
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// A component which encapsulates a single <see cref="UltEventBase"/> with a delay before its invocation.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[AddComponentMenu(UltEventUtils.ComponentMenuPrefix + "Delayed Ult Event Holder")]
|
|
|
|
|
[HelpURL(UltEventUtils.APIDocumentationURL + "/DelayedUltEventHolder")]
|
|
|
|
|
public class DelayedUltEventHolder : UltEventHolder
|
|
|
|
|
{
|
|
|
|
|
/************************************************************************************************************************/
|
|
|
|
|
|
|
|
|
|
[SerializeField]
|
|
|
|
|
private float _Delay;
|
|
|
|
|
|
|
|
|
|
private WaitForSeconds _Wait;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The number of seconds that will pass between calling <see cref="Invoke"/> and the event actually being invoked.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float Delay
|
|
|
|
|
{
|
|
|
|
|
get { return _Delay; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
_Delay = value;
|
|
|
|
|
_Wait = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/************************************************************************************************************************/
|
|
|
|
|
|
|
|
|
|
/// <summary>Waits for <see cref="Delay"/> seconds then calls Event.Invoke().</summary>
|
|
|
|
|
public override void Invoke()
|
|
|
|
|
{
|
|
|
|
|
if (_Delay < 0)
|
|
|
|
|
base.Invoke();
|
|
|
|
|
else
|
|
|
|
|
StartCoroutine(DelayedInvoke());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/************************************************************************************************************************/
|
|
|
|
|
|
|
|
|
|
private IEnumerator DelayedInvoke()
|
|
|
|
|
{
|
|
|
|
|
if (_Wait == null)
|
|
|
|
|
_Wait = new WaitForSeconds(_Delay);
|
|
|
|
|
|
|
|
|
|
yield return _Wait;
|
|
|
|
|
|
|
|
|
|
base.Invoke();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/************************************************************************************************************************/
|
|
|
|
|
}
|
|
|
|
|
}
|