计时器就是在游戏界面的时间,可以是一个正计时,也可以是倒计时,现在简单分享一下简单的计时代码`
private void Update()
{
totalTime -= Time.deltaTime;
if (totalTime <= 0)
{
//todo:计时结束
}
}
这样一个写在update中的及时功能就OK了
下面分享一个稍微复杂一点的 使用协程写计时的功能
public class Timer
{
public float Duration;
public float LeftTime;
private Action _updateAction;
private Action _callAction;
private bool _isPause;
public Timer(float duration,Action updateAction=null,Action callAction=null,Action intiAction = null)
{
LeftTime = duration;
Duration = duration;
if (intiAction != null) intiAction.Invoke();
_updateAction = updateAction;
_callAction = callAction;
_isPause = false;
}
public void OnUpdate(float deltaTime)
{
LeftTime -= deltaTime;
if (LeftTime <= 0)
{
if (_callAction != null)
_callAction.Invoke();
}
else
{
if (_updateAction != null && !_isPause)
_updateAction.Invoke();
}
}
public void SetTimerTrick(bool b)
{
_isPause = b;
}
}
这样一个计时的代码就完成了



