秒单位的计时器
来源:互联网 发布:mysql配置文件调优 编辑:程序博客网 时间:2024/04/28 23:05
using UnityEngine;using System;using System.Collections;public enum XTimerType{ eTime, eFrame,}public delegate void OnTimerEndCb(params object[] param);public delegate bool OnTimerOverCb();public class XTimerComponent : XMono{ public OnTimerEndCb mEndCallback; public OnTimerOverCb mTimerOverCallback; public object[] mParams; public XTimer mTimer; // 强制立即执行,并删除自己Timer! public void RunAndDelete() { mEndCallback(mParams); Destroy(this.gameObject); } void Update() { if(mTimer == null) { return; } if (!mTimer.IsRunning()) { mEndCallback(mParams); bool isOver = true; if (mTimerOverCallback != null) { isOver = mTimerOverCallback(); } if (isOver) { // 结束这个TimerComponent Destroy(this.gameObject); } else { mTimer.Reset(); } } }}public class XTimer{ XTimerType mType; // 计秒 float mStartTime; float mWaitSeconds; // 计帧 int mStartFrame; int mWaitFrames; public XTimer(float waitSeconds) { mType = XTimerType.eTime; mStartTime = Time.time; mWaitSeconds = waitSeconds; } public XTimer(int waitFrames) { mType = XTimerType.eFrame; mStartFrame = XLostPlanet.mCurrentFrame; mWaitFrames = waitFrames; } private XTimer() { } public bool IsRunning() { bool result = false; if (mType == XTimerType.eFrame) { result = (XLostPlanet.mCurrentFrame - mStartFrame < mWaitFrames); } else { result = (Time.time - mStartTime < mWaitSeconds); } return result; } public void Reset() { if(mType == XTimerType.eTime) { mStartTime = Time.time; } else { mStartFrame = XLostPlanet.mCurrentFrame; } }}public class XTimerHelper : XIModule{ static XTimerHelper mInstance; public static XTimerHelper Inst { get { if (mInstance == null) { mInstance = new XTimerHelper(); } return mInstance; } } public IEnumerator OnInit() { yield return null; } public void Activate() { } public IEnumerator OnUnInit() { yield return null; } public XTimerComponent RegisterTimer(float seconds, OnTimerEndCb endCallback, OnTimerOverCb overCallback, params object[] param) { GameObject timerObj = new GameObject("QTimer"); XTimerComponent timerCom = timerObj.AddComponent<XTimerComponent>(); timerCom.mTimer = new XTimer(seconds); timerCom.mEndCallback = endCallback; timerCom.mParams = param; timerCom.mTimerOverCallback = overCallback; GameObject.DontDestroyOnLoad(timerObj); return timerCom; } public XTimerComponent RegisterTimer(float seconds, OnTimerEndCb endCallback, params object[] param) { return RegisterTimer(seconds, endCallback, null, param); } public void RegisterTimer(int frames, OnTimerEndCb endCallback, OnTimerOverCb overCallback, params object[] param) { GameObject timerObj = new GameObject("QTimer"); XTimerComponent timerCom = timerObj.AddComponent<XTimerComponent>(); timerCom.mTimer = new XTimer(frames); timerCom.mEndCallback = endCallback; timerCom.mParams = param; timerCom.mTimerOverCallback = overCallback; GameObject.DontDestroyOnLoad(timerObj); } public void RegisterTimer(int frames, OnTimerEndCb endCallback, params object[] param) { RegisterTimer(frames, endCallback, null, param); }}
0 0
- 秒单位的计时器
- 秒的换算单位
- C# 版本的 计时器类 精确到微秒 秒后保留一位小数 支持年月日时分秒带单位的输出
- timer计时器的秒后跳转
- 时间单位—关于秒的定义
- C++ 计时器 单位
- 高精度纳秒计时器
- 篮球24秒计时器
- 30秒倒计时器
- Android时分秒计时器
- 单片机实验——0到60秒的计时器
- 角秒是什么单位?
- Mapinfo打开秒为单位的图层
- 以秒为单位的时间量所包含的分钟数和剩余秒数
- javascript计时器-1秒精度.
- html+css+jquery__60秒计时器
- 秒 毫秒 微秒 纳秒 皮秒。。时间单位换算
- 顺计时器,将整数转换成分:秒(00:00)形式的时间格式字符串
- 使用Jquery实现图片轮播效果
- php 实现中英文倒序
- nginx 多域名虚拟主机配置 (nginx如何绑定多个域名)
- java中几种常用的排序方法
- 如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件、JS与图片?
- 秒单位的计时器
- robot framework用SSHLibrary发送ctrl-c 等控制字符(control character)到远端 ssh server(如linux server)的表格代码
- java的String=a; a==null和a.equals(null)这两个判断有什么区别
- 教育项目截图
- Flex之旅:第一部分:flex必备基础知识积累(3)---is as typeof in instanceof 用法介绍
- C语言指针作为形参的一些问题
- 厄密多项式
- Windows核心编程:(二)进程
- 管理员必备的20个Linux系统监控工具