using UnityEngine;
using System.Collections;
using UnityEditor;
using System.Collections.Generic;
/// <summary>
/// 我的小工具
/// </summary>
public class MyTools : MonoBehaviour
{
public static MyTools Instance;
private void Awake()
{
Instance = this;
}
/// <summary>
/// 延时几秒执行某个方法
/// </summary>
/// <param name="pDelegate">调用内容</param>
/// <param name="time">等待时间</param>
public void Delay(CustomVoid pDelegate, float time)
{
StartCoroutine(TimeWait(pDelegate, time));
}
public IEnumerator TimeWait(CustomVoid pDelegate, float time)
{
yield return new WaitForSeconds(time);
pDelegate.Invoke();
}
public delegate void CustomVoid();
}
例子:
bool isOpen;
void Update()
{
// 表示当isOpen为True的时候 将其设置为false 然后3秒之后isOpen重新设置为True
if (isOpen)
{
isOpen = false;
MyTools.Instance.Delay(() => { isOpen = true; }, 3);
}
}