Unity封装延时调用定时器
本文实例为大家分享了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); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
C#多线程学习之(五)使用定时器进行多线程的自动管理
本文实例讲述了C#多线程学习之使用定时器进行多线程的自动管理.分享给大家供大家参考.具体分析如下: Timer类:设置一个定时器,定时执行用户指定的函数. 定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数. 初始化一个Timer对象: Timer timer = new Timer(timerDelegate, s,1000, 1000); 第一个参数:指定了TimerCallback 委托,表示要执行的方法: 第二个参数:一个包含回调方法要使用的信息的对象,或者为空引用: 第三个参
-
C#实现延时并自动关闭MessageBox的方法
我们在C#编程中常见的信息提示框(MessageBox)是微软NET自带的一个用于弹出警告.错误或者讯息一类的"模式"对话框.此类对话框一旦开启,则后台窗体无法再被激活(除非当前的MessageBox被点击或者关闭取消).那么如何使用程序模拟鼠标点击这个messageBox(关闭这个MessageBox)令其延时并自动关闭呢?答案是你在弹出这个messageBox之前先启用一个定时器,定时器内部不断向窗体发送Enter按钮用于模拟点击MsgBox的内容,同时主程序中弹出模式消息框. 具
-
c#定时器使用示例详解
在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类里 3.定义在System.Timers.Timer类里 System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API SetTimer实现的.它的主要缺点是计时不精确,而且必须有消息循环,Console Application(控制台
-
C#中自定义高精度Timer定时器的实例教程
1.背景 在C#里关于定时器的类就有3个: (1)定义在System.Windows.Forms里 (2)定义在System.Threading.Timer类里 (3)定义在System.Timers.Timer类里 Timer 用于以用户定义的事件间隔触发事件.Windows 计时器是为单线程环境设计的,其中,UI 线程用于执行处理.它要求用户代码有一个可用的 UI 消息泵,而且总是在同一个线程中操作,或者将调用封送到另一个线程. 使用此计时器时,请使用控件的Tick事件执行轮询操作,
-
C#定时器实现自动执行的方法
本文实例讲述了C#定时器实现自动执行的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: //下面讲一个打开窗体定时执行按钮的东西 private void Form1_Load(object sender, EventArgs e) { System.Timers.Timer pTimer = new System.Timers.Timer(5000);//每隔5秒执行一次,没用winfrom自带的 pTimer.Elapsed+=pTimer_Elapsed;//委托,要执
-
C#中timer定时器用法实例
本文实例讲述了C#中timer定时器用法.分享给大家供大家参考.具体如下: 下面的代码通过Timer定时器每隔1000毫秒(1秒)触发一次事件 using System; using System.Timers; class TestTimer { public static void Main () { Timer timer = new Timer(); timer.Elapsed + = new ElapsedEventHandler(DisplayTimeEvent); timer.In
-
Unity封装延时调用定时器
本文实例为大家分享了Unity封装延时调用定时器的具体代码,供大家参考,具体内容如下 封装一个延时调用定时器类 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; public class WaitTimeManager { private static TaskBehaviour m_Task; static WaitTimeManage
-
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
用setInterval方法可以以指定的间隔实现循环调用函数,直到clearInterval方法取消循环 用clearInterval方法取消循环时,必须将setInterval方法的调用赋值给一个变量,然后clearInterval方法引用该变量. 复制代码 代码如下: <script type="text/javascript"> var n = 0; function print(){ document.writeln(n); if(n==1
-
微信封装的调用微信签名包的类库
废话不多说了,直接给大家贴代码了,具体代码如下所示: <?php namespace Home\Model; use Think\Model; class WechatModel extends Model { private $_token = ''; //令牌 private $appid; private $appsecret; public function __construct() { $this->appid = C('APPID');//公众号的appid $this->
-
浅析javascript的间隔调用和延时调用
用 setInterval方法可以以指定的间隔实现循环调用函数,直到clearInterval方法取消循环 用clearInterval方法取消循环时,必须将setInterval方法的调用赋值给一个变量,然后clearInterval方法引用该变量. 复制代码 代码如下: <script type="text/javascript"> var n = 0; function print(){ document.writeln(n);
-
利用js的闭包原理做对象封装及调用方法
创建一个js文件,名为testClosure.js: (function () { function a() { alert('i am a'); } outFunc = function () { a(); } })(); 这里不论写多少个function,a b c d ...外面都调用不到,包括这里面var定义的变量也都调用不到,那么你在里面尽情的写,就不用担心这些函数名变量名跟外界冲突: 只需要暴露一个outFunc这个函数供外界调用.这个函数呢没有用var定义,就变成一个全局变量,外界
-
Unity同步/异步调用Android的方法实例
目录 1 Unity如何使用Android插件 2 同步方法如何调用 2.1 例子1 2.2 例子2 3 异步方法如何调用 3.1 Android端 3.1.1 添加依赖 3.1.2 代码逻辑 3.2 Unity端 总结 1 Unity如何使用Android插件 很简单,把android的模块,打包成aar或者jar,放到Assets/Plugin/Android即可! 2 同步方法如何调用 2.1 例子1 Android端 假设Android有一个方法 public static String
-
Python封装SNMP调用接口的示例代码
PySNMP 是一个纯粹用Python实现的SNMP,用PySNMP的最抽象的API为One-line Applications,其中有两类API:同步的和非同步的,都在模块pysnmp.entity.rfc3413.oneliner.cmdgen 中实现,如下是Get方式与Walk方式的基本实现. 首先需要在系统中安装SNMP客户端,对于Linux平台来说只需要执行如下配置过程即可. [root@localhost ~]# yum install -y net-snmp [root@local
-
WebService 的简单封装接口调用方法
此方法完成了简单WebService 的简单调用封装,实现了简单Webservice简单调用的统一操作,避免了每增加一个操作都必须增加一个接口方法 的囧状! /// <summary> /// 封装同一的接口调用方法 /// </summary> /// <param name="_strSql">传入的简单sql</param> /// <param name="_strConnNmae">连接数据库字符
-
Android 开发延时调用的几种方法
我们在安卓开发中,有时候会遇到需要一个程序推迟一段时间执行,也就是延时执行,比如说App首页显示定格3秒,然后自动跳到登录页的情况,这个怎么做呢?本文参考网上,整理了一下几点,供广大安卓开发者参考,希望对读者有所帮助. 一.开启新线程 new Thread(new Runnable(){ public void run(){ Thread.sleep(XXXX); handler.sendMessage(); //告诉主线程执行任务 } }).start 二.利用定时器 imerTask tas
-
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
http://www.cnblogs.com/TomXu/archive/2012/02/16/2351331.html , 在回来看这里文章,你一定会有更深刻的认识.因为我在这里介绍概念上的东西比较少,看下面的例子,对初学的朋友可能会有些吃力! 1.DOM的架构 复制代码 代码如下: <html> <head> <title>document</title> </head> <body> <h1>CSS Demo<
随机推荐
- 原生JS实现隐藏显示图片 JS实现点击切换图片效果
- Javascript实现关联数据(Linked Data)查询及注意细节
- JAVA包装类及自动封包解包实例代码
- php+js实现百度地图多点标注的方法
- Android实现Service重启的方法
- C++中用substr()函数消除前后空格的解决方法详解
- 为你的微信小程序体积瘦身详解
- expect实现单台、多台服务器批量scp传输文件
- 浅析Bootstrap表格的使用
- 浅谈C++左值引用和右值引用
- C# Struct的内存布局问题解答
- javascript静态的url如何传递
- C++设计模式之状态模式
- 浅谈toLowerCase和toLocaleLowerCase的区别
- php通过function_exists检测函数是否存在的方法
- PHP自定义函数判断是否为Get、Post及Ajax提交的方法
- 读“网站项目失败!我成千古罪人”有感第1/2页
- java自定义类加载器代码示例
- seajs下require书写约定实例分析
- vue实现同一个页面可以有多个router-view的方法