Unity延迟几秒执行一个方法小工具

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);
        }

    }
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值