Unity封装延时调用定时器

作者:林新发 时间:2022-10-14 05:43:53 

本文实例为大家分享了Unity封装延时调用定时器的具体代码,供大家参考,具体内容如下

封装一个延时调用定时器类


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;

public class WaitTimeManager
{
private static TaskBehaviour m_Task;
static WaitTimeManager()
{
GameObject go = new GameObject("#WaitTimeManager#");
GameObject.DontDestroyOnLoad(go);
m_Task = go.AddComponent<TaskBehaviour> ();
}

//等待
static public Coroutine WaitTime(float time,UnityAction callback)
{
return m_Task.StartCoroutine(Coroutine(time,callback));
}

//取消等待
static public void CancelWait(ref Coroutine coroutine)
{
if (coroutine != null) {
m_Task.StopCoroutine(coroutine);
coroutine = null;
}
}

static IEnumerator Coroutine(float time, UnityAction callback) {
yield return new WaitForSeconds (time);
if (callback != null) {
callback();
}
}

//内部类
class TaskBehaviour : MonoBehaviour { }
}

测试


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Script_04_15 : MonoBehaviour {

void Start () {
//开启定时器
Coroutine coroutine = WaitTimeManager.WaitTime(5f, delegate {
Debug.LogFormat("等待5秒后回调");
});

//等待过程中取消它
//WaitTimeManager.CancelWait (ref coroutine);
}
}

来源:https://blog.csdn.net/linxinfa/article/details/105262132

标签:Unity,延时,定时器
0
投稿

猜你喜欢

  • 老生常谈反射之Class类的使用(必看篇)

    2022-07-20 16:32:30
  • 解决IDEA2020 创建maven项目没有src/main/java目录和webapp目录问题

    2022-05-29 07:57:18
  • 分享Android仿刮奖效果控件

    2021-12-15 16:00:16
  • Jenkins集成sonarQube实现代码质量检查过程图解

    2023-08-30 10:32:52
  • Java简单工厂模式详细解释

    2021-09-20 16:12:07
  • Java Date时间类型的操作实现

    2023-11-25 06:44:31
  • 基于Android AIDL进程间通信接口使用介绍

    2021-12-28 05:15:22
  • Springboot整合knife4j与shiro的操作

    2023-08-25 08:31:42
  • Spring Boot 防止接口恶意刷新和暴力请求的实现

    2022-05-08 03:54:58
  • java计算工作时间除去节假日以及双休日

    2023-09-24 20:34:58
  • Spring Boot项目实战之拦截器与过滤器

    2022-08-04 15:55:31
  • win7中C#的winForm编程使用savefiledialog不能弹出保存窗体的解决方法

    2022-09-18 07:27:57
  • Android开发实现判断通知栏是否打开及前往设置页面的方法

    2022-10-21 10:43:45
  • Java源码解析HashMap的keySet()方法

    2023-11-11 06:33:05
  • mybatis中的缓存问题解析

    2023-07-27 20:01:59
  • SpringData如何通过@Query注解支持JPA语句和原生SQL语句

    2022-08-26 22:07:29
  • Android绘制钟表的方法

    2023-09-01 13:18:03
  • Java数据结构之实现哈希表的分离链接法

    2023-09-06 04:50:17
  • Java中EnvironmentAware 接口的作用

    2023-04-15 16:11:12
  • Springboot实现高吞吐量异步处理详解(适用于高并发场景)

    2023-08-20 23:40:35
  • asp之家 软件编程 m.aspxhome.com