1、定时功能(一定时间后执行某一个方法)
/*****************************************************************
*UnityVersion: 2020.3.1f1
*Function: 定时功能
*******************************************************************/
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace QFramework
{
/// <summary>
/// 定时功能
/// </summary>
public class DelayWithCoroutineScript : MonoBehaviour
{
/// <summary>
/// 定时方法
/// </summary>
public void Delay(float seconds, Action onFinished)
{
StartCoroutine(DelayCoroutine(seconds, onFinished));
}
/// <summary>
/// 等待一定时间后执行回调方法
/// </summary>
/// <param name="seconds"></param>
/// <param name="onFinished"></param>
/// <returns></returns>
private IEnumerator DelayCoroutine(float seconds, Action onFinished)
{
yield return new WaitForSeconds(seconds);
onFinished();
StopCoroutine("DelayCoroutine");
}
}
}
2、测试
/*****************************************************************
*UnityVersion: 2020.3.1f1
*Function: 定时功能测试
*******************************************************************/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace QFramework
{
/// <summary>
/// 定时功能测试
/// </summary>
public class DelayWithCoroutineScriptTest : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
this.GetComponent<DelayWithCoroutineScript>().Delay(6.0f, () =>
{
Debug.Log("回调结束");
});
}
}
}
3、结果:在程序开始6s后执行回调方法。