Advertisement
natmaxex

TimeManager

Sep 12th, 2022 (edited)
954
-1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.32 KB | Gaming | 0 1
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System;
  5.  
  6.  
  7. public class TimeCounter : MonoBehaviour
  8. {
  9.     public List<TimeContainer> timeCon;
  10.    
  11.     // Update is called once per frame
  12.     void Update()
  13.     {
  14.         if (timeCon.Count > 0)
  15.         {
  16.             float realtime;
  17.             float second = 0;
  18.             realtime = Time.deltaTime;
  19.             second += realtime;
  20.             if (second >= 1)
  21.             {
  22.                 TimerController();
  23.                 second = 0;
  24.             }
  25.         }
  26.     }
  27.  
  28.     public int CreateTimeItem(int _Hours, int _Minutes, int _Seconds, bool _CountUpOrDownIO)
  29.     {
  30.         timeCon.Add(new TimeContainer(_Hours, _Minutes, _Seconds, _CountUpOrDownIO));
  31.         return timeCon.Count;
  32.     }
  33.  
  34.     public void TimerController()
  35.     {
  36.         for (int i = 0; i < timeCon.Count; i++)
  37.         {
  38.             if (timeCon[i].countUpDownIO)
  39.             {
  40.                 timeCon[i].sec += 1;
  41.                 if (timeCon[i].sec > 59)
  42.                 {
  43.                     timeCon[i].min += 1;
  44.                     timeCon[i].sec = 0;
  45.                 }
  46.                 if (timeCon[i].min > 59)
  47.                 {
  48.                     timeCon[i].hour += 1;
  49.                     timeCon[i].min = 0;
  50.                 }
  51.             }
  52.             else
  53.             {
  54.                 if (timeCon[i].hour < 1 &&
  55.                     timeCon[i].min < 1 &&
  56.                     timeCon[i].sec < 1)
  57.                 {
  58.                     timeCon.Remove(timeCon[i]);
  59.                 }
  60.                 timeCon[i].sec -= 1;
  61.                 if (timeCon[i].sec < 1)
  62.                 {
  63.                     timeCon[i].min -= 1;
  64.                     timeCon[i].sec = 60;
  65.                 }
  66.                 if (timeCon[i].min < 1)
  67.                 {
  68.                     timeCon[i].hour -= 1;
  69.                     timeCon[i].min = 60;
  70.                 }
  71.             }
  72.         }
  73.     }
  74. }
  75.  
  76. [Serializable]
  77. public class TimeContainer
  78. {
  79.     public int hour;
  80.     public int min;
  81.     public int sec;
  82.     public bool countUpDownIO;
  83.     public TimeContainer(
  84.         int _hour,
  85.         int _min,
  86.         int _sec,
  87.         bool _countUpDownIO)
  88.     {
  89.         hour = _hour;
  90.         min = _min;
  91.         sec = _sec;
  92.         countUpDownIO = _countUpDownIO;
  93.     }
  94. }
  95.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement