using System.Collections; using System.Collections.Generic; using UnityEngine; using System; public class GlobalTimeEvent : SingletonMonobehaviour { 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; } } } }