using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using System;
|
|
|
public class GlobalTimeEvent : SingletonMonobehaviour<GlobalTimeEvent>
|
|
{
|
public event Action secondEvent;
|
public event Action fiveSecondEvent;
|
public event Action minuteEvent;
|
public event Action fiveMinuteEvent;
|
public event Action tenMinuteEvent;
|
public event Action halfHourEvent;
|
public event Action hourEvent;
|
public event Action halfMinuteEvent;
|
|
int secondBuf = -1;
|
int fiveSecondBuf = -1;
|
int minuteBuf = -1;
|
int fiveMinuteBuf = -1;
|
int tenMinuteBuf = -1;
|
int halfHourBuf = -1;
|
int hourBuf = -1;
|
int halfMinuteBuf = -1;
|
|
public void Begin()
|
{
|
|
}
|
|
private void Update()
|
{
|
var second = DateTime.Now.Second;
|
if (second != secondBuf)
|
{
|
if (secondEvent != null)
|
{
|
secondEvent();
|
}
|
|
secondBuf = second;
|
}
|
|
|
var fiveSecond = second / 5;
|
if (fiveSecondBuf != fiveSecond)
|
{
|
try
|
{
|
if (fiveSecondEvent != null)
|
{
|
fiveSecondEvent();
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.LogException(ex);
|
}
|
finally
|
{
|
fiveSecondBuf = fiveSecond;
|
}
|
}
|
|
var minute = DateTime.Now.Minute;
|
if (minuteBuf != minute)
|
{
|
try
|
{
|
if (minuteEvent != null)
|
{
|
minuteEvent();
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.LogException(ex);
|
}
|
finally
|
{
|
minuteBuf = minute;
|
}
|
}
|
|
var thirtySeconds = second / 30;
|
if (halfMinuteBuf != thirtySeconds)
|
{
|
try
|
{
|
if (halfMinuteEvent != null)
|
{
|
halfMinuteEvent();
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.LogException(ex);
|
}
|
finally
|
{
|
halfMinuteBuf = thirtySeconds;
|
}
|
}
|
|
var fiveMinute = minute / 5;
|
if (fiveMinuteBuf != fiveMinute)
|
{
|
try
|
{
|
if (fiveMinuteEvent != null)
|
{
|
fiveMinuteEvent();
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.LogException(ex);
|
}
|
finally
|
{
|
fiveMinuteBuf = fiveMinute;
|
}
|
}
|
|
var tenMinute = minute / 10;
|
if (tenMinuteBuf != tenMinute)
|
{
|
try
|
{
|
if (tenMinuteEvent != null)
|
{
|
tenMinuteEvent();
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.LogException(ex);
|
}
|
finally
|
{
|
tenMinuteBuf = tenMinute;
|
}
|
}
|
|
var thirtyMinute = minute / 30;
|
if (halfHourBuf != thirtyMinute)
|
{
|
try
|
{
|
if (halfHourEvent != null)
|
{
|
halfHourEvent();
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.LogException(ex);
|
}
|
finally
|
{
|
halfHourBuf = thirtyMinute;
|
}
|
}
|
|
var hour = DateTime.Now.Hour;
|
if (hourBuf != hour)
|
{
|
try
|
{
|
if (hourEvent != null)
|
{
|
hourEvent();
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.LogException(ex);
|
}
|
finally
|
{
|
hourBuf = hour;
|
}
|
}
|
|
}
|
|
|
}
|