1、延迟 x 秒后调用
/// <summary>
/// 延迟(秒)
/// </summary>
public static Coroutine SetTimeOut(this MonoBehaviour mono,
float sec,
UnityAction callback)
{
return mono.StartCoroutine(SetTimeOut(callback, sec));
}
private static IEnumerator SetTimeOut(UnityAction callback, float sec)
{
yield return new WaitForSeconds(sec);
callback?.Invoke();
}
2. 每隔 x 秒调用一次
/// <summary>
/// 每隔一定时间调用一次
/// </summary>
public static Coroutine SetInterval(this MonoBehaviour mono,
UnityAction action,
float timeInterval)
{
return mono.StartCoroutine(SetInterval(action, timeInterval));
}
private static IEnumerator SetInterval(UnityAction action, float timeInterval)
{
while (true)
{
yield return new WaitForSeconds(timeInterval);
action?.Invoke();