public Timer(float time, Task task, TimerManager manager = null, bool repeat = false)
    {
        this._timeToWait       = time;
        this.timerEndsDelegate = new TimerEnds(task.DoTask);
        this._manager          = manager;
        this._repeat           = repeat;

        if (Manager != null)
        {
            Manager.Add(this);
        }
        lastTime = Time.time;
    }
    public Timer(float time, TimerEnds timerEndsDelegate, TimerManager manager = null, bool repeat = false, int timesToRepeat = 0)
    {
        this._timeToWait       = time;
        this.timerEndsDelegate = timerEndsDelegate;
        this._manager          = manager;
        this._repeat           = repeat;
        this._timesToRepeat    = timesToRepeat;

        if (Manager != null)
        {
            Manager.Add(this);
        }
        lastTime = Time.time;
    }