Unity之简易定时器Timer
2017-08-06 19:08
309 查看
有时候我们会有这样的需求:几秒或者几帧之后做什么事,也就是一个定时器。这里我利用Time.realtimeSinceStartup实现了一个简单的秒钟定时器,当然还可以利用Time.frameCount实现一个帧计时器
上代码:
上面的代码省略了是否循环、循环次数以及帧计时器,思路类似。
最后附上测试Demo下载地址:
链接:http://pan.baidu.com/s/1bp5xRSr 密码:y35i
下载链接如有失效,请即时联系
以上知识分享,如有错误,欢迎指出,共同学习,共同进步
上代码:
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Timer { private Timer() { m_timerTask = new List<TimerTask>(); } private static Timer m_instance; public static Timer Instance { get { if (m_instance == null) { m_instance = new Timer(); } return m_instance; } } public delegate void OnTimeStart(); private List<TimerTask> m_timerTask = null; public class TimerTask { //public int Id; public float RealTime; public float Time; //public bool IsLoop; //public int LoopCount; public OnTimeStart CallBack; } public void UpdateTimer() { for (int i = 0; i < m_timerTask.Count; i++) { TimerTask t = m_timerTask[i]; if (t == null) { continue; } if (t.RealTime < Time.realtimeSinceStartup) { if (null != t.CallBack) { t.CallBack(); m_timerTask.Remove(t); } } } } public void AddTimerTask(float time, OnTimeStart callback) { if (null == callback) { return; } TimerTask t = new TimerTask(); t.Time = time; t.RealTime = Time.realtimeSinceStartup + time; t.CallBack = callback; m_timerTask.Add(t); } }
上面的代码省略了是否循环、循环次数以及帧计时器,思路类似。
最后附上测试Demo下载地址:
链接:http://pan.baidu.com/s/1bp5xRSr 密码:y35i
下载链接如有失效,请即时联系
以上知识分享,如有错误,欢迎指出,共同学习,共同进步
相关文章推荐
- Unity 游戏框架搭建 (十二) 简易AssetBundle打包工具(二)
- 我的Unity游戏开发笔记之游戏基础(一):简易道具生成
- 我的Unity游戏开发笔记之特效基础(二):简易爆炸效果
- Unity 简易UI框架
- unity简易小地图的实现(NGUI)
- Unity打造简易的GalGame游戏剧本编辑引擎
- 【Unity】简易的资源管理器
- Unity 视频渲染插件AVPro Movie Capture 简易教程
- [UnityUI]简易的小地图制作
- 11.Socket编程-unity简易聊天室
- Unity简易对象池
- Unity 游戏框架搭建--简易有限状态机
- Unity 游戏框架搭建 (四) 简易有限状态机
- Unity创建一个简易的弹簧(弹动)效果
- [Unity插件]A* Pathfinding Project:简易课程
- Unity 游戏框架搭建 (五) 简易消息机制
- Unity之简易任务队列TaskQueue
- 关于Unity中定时器的简易使用
- Unity学习笔记2 简易2D横版RPG游戏制作(二)
- unity 在菜单中添加 复制文件菜单项(简易版)