出处:http://blog.youkuaiyun.com/u010019717
author:孙广东 时间:2015.3.24 23:00
unity中有协程可以提供延迟的功能等。 但是很多时候我们并不想使用,那就自己在Update中控制时间呗。
于是我封装了这个类。
若要使用这个时钟,首先将其实例化,调用Reset函数设置正确的时间值,调用Update每一帧更新。
任何想要被事件通知的类需要实现 IClockListener 接口,
和使用AddListener方法订阅事件。可以用RemoveListener移除侦听器(很强大吧!)
时钟能够使用Pause方法独立于 Time.timeScale 被暂停 (和使用 Unpause恢复继续)
using System.Collections.Generic;
namespace Gamelogic
{
public class Clock
{
private float time;
private int timeInSeconds;
private readonly List<IClockListener> listeners; // 监听列表
#region
public bool IsPaused
{
get; private set;
}
public bool IsDone
{
get; private set;
}
public float Time
{
get
{
return time;
}
}
public int TimeInSeconds