常用功能------定时功能

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后执行回调方法。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_37179591/article/details/122155352