1
Fork 0
mirror of https://github.com/Steffo99/better-tee.git synced 2024-11-22 15:24:18 +00:00
better-tee/Assets/Common/Scripts/Timer.cs

59 lines
1.3 KiB
C#
Raw Normal View History

2019-09-11 13:13:31 +00:00
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Timer : MonoBehaviour
{
public float startingTime = 0f;
public float time = 0f;
2019-09-11 13:51:05 +00:00
private bool isTriggered = false;
private bool isRunning = false;
2019-09-11 13:13:31 +00:00
protected void Update() {
if(time >= 0f) {
if(isRunning) {
time -= Time.deltaTime;
}
}
else {
if(isTriggered) {
2019-09-11 14:12:59 +00:00
_OnTimeOut(this, EventArgs.Empty);
2019-09-11 13:51:05 +00:00
time = 0f;
2019-09-11 13:13:31 +00:00
isTriggered = false;
2019-09-11 13:51:05 +00:00
isRunning = false;
2019-09-11 13:13:31 +00:00
}
}
}
2019-09-11 13:51:05 +00:00
public void TimerSet(float startingTime) {
2019-09-11 13:13:31 +00:00
isTriggered = true;
2019-09-11 13:51:05 +00:00
isRunning = false;
2019-09-11 13:13:31 +00:00
this.startingTime = startingTime;
time = startingTime;
}
2019-09-11 13:51:05 +00:00
public void TimerStart() {
isRunning = true;
}
public void TimerPause() {
isRunning = false;
}
public void TimerCancel() {
time = 0f;
isTriggered = false;
isRunning = false;
}
public event EventHandler OnTimeOut;
2019-09-11 14:12:59 +00:00
protected virtual void _OnTimeOut(object sender, EventArgs e)
2019-09-11 13:13:31 +00:00
{
2019-09-11 13:51:05 +00:00
EventHandler handler = OnTimeOut;
2019-09-11 13:13:31 +00:00
handler?.Invoke(this, e);
}
}