201710030230->Timer时间类
来源:互联网 发布:h3c网络管理软件 编辑:程序博客网 时间:2024/06/06 12:53
目的:在unity中统一处理延时以及性能优化的功能
class->Timer
结构分析:
1.计时器的时长
2.计时器当前时刻
3.开始回调
4.更新回调
5.结束回调
6.回收
--------------------------------------------------------------------------------------------------------
详细代码:
public class Timer
{
private float duringTime = 0f;
private TimerCallBack onStartCallBack;
private Action<Timer> onUpdateCallBack;
private TimerCallBack onCompleteCallBack;
private float tempTime = 0;
/// <summary>
/// 倒计时
/// </summary>
public int EscapleTime { get { return (int)tempTime; } }
/// <summary>
/// 顺计时
/// </summary>
public int EntranceTime { get { return (int)(duringTime - tempTime); } }
private bool autoToKill = true;
private TimerMgr handler;
private int timerId;
private bool IsPause = false;
public Timer() { }
public Timer(TimerMgr handler, int timerId, float duringTime, TimerCallBack onStartCallBack = null)
{
this.handler = handler;
this.timerId = timerId;
this.duringTime = duringTime;
this.onStartCallBack = onStartCallBack;
if (this.onStartCallBack.IsNonNull()) { this.onStartCallBack(); }
}
public Timer OnUpdate(Action<Timer> updataCallBack = null)
{
if (!IsPause)
{
if (onUpdateCallBack == null)
{
onUpdateCallBack = updataCallBack;
}
if (tempTime >= duringTime)
{
if (onCompleteCallBack.IsNonNull()) { onCompleteCallBack(); }
if (!autoToKill)
{
tempTime = 0;
}
DestoryObject();
}
else
{
if (onUpdateCallBack.IsNonNull()) { onUpdateCallBack(this); }
tempTime += Time.deltaTime;
}
}
return this;
}
public void Pause()
{
IsPause = true;
}
public Timer SetAutoToKill(bool autoToKill)
{
this.autoToKill = autoToKill;
return this;
}
public void DestoryObject()
{
handler.DestoryObject(timerId);
}
public void OnComplete(TimerCallBack onCompleteCallBack)
{
this.onCompleteCallBack = onCompleteCallBack;
}
--------------------------------------------------------------------------------------------------------
- 201710030230->Timer时间类
- timer类,计算脚本的运行时间
- php Timer 页面运行时间监测类
- Timer类第一次启动时间的间隔
- 定时器Timer、TimerTask时间任务类
- php Timer 页面运行时间监测类
- java的Timer时间
- timer定时器时间配置
- 时间线程Timer
- 时间线程Timer
- timer-----计算程序时间
- 利用Timer类实现"显示时间"的功能
- JAVA TIMER 时间调度程序
- [MFC]自定义时间间隔Timer
- Android利用Timer刷新时间
- boost::timer之时间处理器
- java 定时器(任意时间)Timer
- boost完全开发指南第2章-处理时间2(时间类timer)
- 计算机网络:概述
- CLion中使用CMake导入第三方库的方法
- <C++>12.析构函数
- webpack的基本使用
- pair的用法
- 201710030230->Timer时间类
- Cpp知识点汇总
- <C++>13.构造函数和析构函数的调用顺序
- xdoj 1019 自然数的秘密
- 洛谷P1144 最短路计数(BFS)
- MQTT客户端QT的配置
- 九度OJ剑指Offer题目1515:打印1到最大的N位数
- Git 提交时报错 error: failed to push some refs to 'https://github.com/yibin94/shop.git'
- MAVEN项目标准目录结构