unity 延时调用方法

来源:互联网 发布:淘宝怎么删掉评价 编辑:程序博客网 时间:2024/06/08 21:02
using UnityEngine;using System.Collections;using System.Collections.Generic;/// <summary>/// 使用Time.time控制时间间隔调用方法/// </summary>public class ProcessControl {    static System.Action _action;    static float currentTime;    static float _delayTime;    static Queue<System.Action> qAction = new Queue<System.Action>();    public static void InvokeAfterSecond(System.Action action, float delayTime)    {        _action = action;        currentTime = Time.time;        _delayTime = delayTime;    }    public static void InvokeFuncListAfterSecond(Queue<System.Action> action, float delayTime)    {        qAction = action;        currentTime = Time.time;        _delayTime = delayTime;    }    public static void Update()    {        if (Time.time > currentTime + _delayTime)        {            foreach (var item in qAction)            {                item();            }            currentTime = 0;            _delayTime = int.MaxValue;        }    }    public static Queue<System.Action> AddFun(System.Action action)    {        qAction.Enqueue(action);        return qAction;    }}public class TestTimeControl:MonoBehaviour{    void Start()    {        ProcessControl.InvokeFuncListAfterSecond(ProcessControl.AddFun(            () =>            {                Debug.Log("3");                Print1();                Print2();            }), 3);    }    void Update()    {        ProcessControl.Update();    }    void Print1()    {        Debug.Log("print1");    }    void Print2()    {        Debug.Log("print2");    }    }


0 0
原创粉丝点击