Iuvo Unity 0.5.1
This is library containing a variety of helper classes and extension methods for the Unity gane engine.
GitHub | Iuvo Unity Updates | Creator
Loading...
Searching...
No Matches
IuvoUnity.DataStructs.Timer Class Reference
Inheritance diagram for IuvoUnity.DataStructs.Timer:
IuvoUnity.BaseClasses.IDataStructBase IuvoUnity.Interfaces.ICreatable IuvoUnity.Interfaces.IDestructible IuvoUnity.Interfaces.IConfigurable IuvoUnity.Interfaces.IReconfigurable IuvoUnity.BaseClasses.IuvoInterfaceBase IuvoUnity.BaseClasses.IuvoInterfaceBase IuvoUnity.BaseClasses.IuvoInterfaceBase IuvoUnity.BaseClasses.IuvoInterfaceBase

Public Member Functions

void SetDuration (float newDuration)
float Duration ()
float Elapsed ()
float Remaining ()
bool IsRunning (Timer_Activity_Mode activityMode)
void StartTimer ()
async Task AwaitFinish ()
void UpdateTimer ()
virtual void Update ()
virtual void FixedUpdate ()
virtual void LateUpdate ()
void PauseTimer ()
void ResumeTimer ()
void ResetTimer ()
void OnCreate ()
void OnDestroy ()
void Destroy ()
void ConfigureTimer (TimerData timerData)
virtual void OnConfigure ()
virtual void OnReconfigure ()

Public Attributes

Timer_Activity_Mode activityMode
Tick_Mode tickMode
MultiTimer timer

Properties

bool Configured [get, set]
bool Reconfigured [get, set]

Private Member Functions

void InitTimer ()
void Awake ()

Member Function Documentation

◆ AwaitFinish()

async Task IuvoUnity.DataStructs.Timer.AwaitFinish ( )
57 {
58 var tcs = new TaskCompletionSource<bool>();
59
60
61 void Handler()
62 {
63 tcs.TrySetResult(true);
64 }
65
66 if (activityMode == Timer_Activity_Mode.INCREMENT)
67 {
68 timer.countUpTimer.OnFinished.AddListener(Handler);
69 }
70 else if (activityMode == Timer_Activity_Mode.DECREMENT)
71 {
72 timer.countdownTimer.OnFinished.AddListener(Handler);
73 }
74 else
75 {
76 throw new System.NotSupportedException("Stopwatch timer does not finish by itself.");
77 }
78
79 if (!timer.IsRunning(activityMode))
80 {
81 StartTimer();
82 }
83 else if (timer.IsRunning(activityMode))
84 {
85 IuvoDebug.DebugLogWarning("Timer is already running. AwaitFinish will return when the current timer finishes.");
86 }
87 await tcs.Task;
88
89 // Cleanup listener
90 if (activityMode == Timer_Activity_Mode.INCREMENT)
91 {
92 timer.countUpTimer.OnFinished.RemoveListener(Handler);
93 }
94 else if (activityMode == Timer_Activity_Mode.DECREMENT)
95 {
96 timer.countdownTimer.OnFinished.RemoveListener(Handler);
97 }
98 }
Timer_Activity_Mode
Definition IuvoTime.cs:185

References activityMode, IuvoUnity.Debug.IuvoDebug.DebugLogWarning(), StartTimer(), and timer.

◆ Awake()

void IuvoUnity.DataStructs.Timer.Awake ( )
private
27=> InitTimer();

◆ ConfigureTimer()

void IuvoUnity.DataStructs.Timer.ConfigureTimer ( TimerData timerData)
164 {
165 activityMode = timerData.activityMode;
166 tickMode = timerData.tickMethod;
167 ResetTimer();
168 SetDuration(timerData.duration);
169 }
Tick_Mode tickMethod
Definition TimerConfiguration.cs:16
float duration
Definition TimerConfiguration.cs:17
Timer_Activity_Mode activityMode
Definition TimerConfiguration.cs:15

References IuvoUnity.Configurations.TimerData.activityMode, activityMode, IuvoUnity.Configurations.TimerData.duration, ResetTimer(), SetDuration(), IuvoUnity.Configurations.TimerData.tickMethod, and tickMode.

Referenced by IuvoUnity.Configurations.TimerConfiguration.Configure(), and IuvoUnity.Configurations.TimerConfiguration.Reconfigure().

◆ Destroy()

void IuvoUnity.DataStructs.Timer.Destroy ( )
159 {
160 Destroy(this);
161 }

References Destroy().

Referenced by Destroy().

◆ Duration()

float IuvoUnity.DataStructs.Timer.Duration ( )
34 {
35 return timer.GetDuration(activityMode);
36 }

References activityMode, and timer.

Referenced by IuvoUnity.IuvoTime.TimeKeeper.FormatTimerDuration().

◆ Elapsed()

float IuvoUnity.DataStructs.Timer.Elapsed ( )
38 {
39 return timer.Elapsed(activityMode);
40 }

References activityMode, and timer.

Referenced by IuvoUnity.IuvoTime.TimeKeeper.FormatElapsedTime().

◆ FixedUpdate()

virtual void IuvoUnity.DataStructs.Timer.FixedUpdate ( )
virtual
114 {
115 if (tickMode == Tick_Mode.TICK_ON_FIXED_UPDATE)
116 {
117 UpdateTimer();
118 }
119 }
Tick_Mode
Definition IuvoTime.cs:194

References tickMode, and UpdateTimer().

◆ InitTimer()

void IuvoUnity.DataStructs.Timer.InitTimer ( )
private
22 {
23 timer = new MultiTimer();
24 timer.Initialize();
25 }

References timer.

◆ IsRunning()

bool IuvoUnity.DataStructs.Timer.IsRunning ( Timer_Activity_Mode activityMode)
47 {
48 return timer.IsRunning(activityMode);
49 }

References activityMode, and timer.

◆ LateUpdate()

virtual void IuvoUnity.DataStructs.Timer.LateUpdate ( )
virtual
122 {
123 if (tickMode == Tick_Mode.TICK_ON_LATE_UPDATE)
124 {
125 UpdateTimer();
126 }
127 }

References tickMode, and UpdateTimer().

◆ OnConfigure()

virtual void IuvoUnity.DataStructs.Timer.OnConfigure ( )
virtual

◆ OnCreate()

void IuvoUnity.DataStructs.Timer.OnCreate ( )

Implements IuvoUnity.Interfaces.ICreatable.

148=> InitTimer();

Referenced by IuvoUnity.IuvoTime.TimerFactory.Create().

◆ OnDestroy()

void IuvoUnity.DataStructs.Timer.OnDestroy ( )

Implements IuvoUnity.Interfaces.IDestructible.

153 {
154 timer.Dispose();
155 }

References timer.

◆ OnReconfigure()

virtual void IuvoUnity.DataStructs.Timer.OnReconfigure ( )
virtual

Implements IuvoUnity.Interfaces.IReconfigurable.

183 {
184 Reconfigured = true;
185 }

References Reconfigured.

Referenced by IuvoUnity.Configurations.TimerConfiguration.Reconfigure().

◆ PauseTimer()

void IuvoUnity.DataStructs.Timer.PauseTimer ( )
130 {
131 timer.Pause(activityMode);
132 }

References activityMode, and timer.

◆ Remaining()

float IuvoUnity.DataStructs.Timer.Remaining ( )
42 {
43 return timer.Remaining(activityMode);
44 }

References activityMode, and timer.

Referenced by IuvoUnity.IuvoTime.TimeKeeper.FormatRemainingTime().

◆ ResetTimer()

void IuvoUnity.DataStructs.Timer.ResetTimer ( )
140 {
141 timer.Reset(activityMode);
142 }

References activityMode, and timer.

Referenced by ConfigureTimer().

◆ ResumeTimer()

void IuvoUnity.DataStructs.Timer.ResumeTimer ( )
135 {
136 timer.Resume(activityMode);
137 }

References activityMode, and timer.

◆ SetDuration()

void IuvoUnity.DataStructs.Timer.SetDuration ( float newDuration)
30 {
31 timer.SetDuration(newDuration, activityMode);
32 }

References activityMode, and timer.

Referenced by ConfigureTimer().

◆ StartTimer()

void IuvoUnity.DataStructs.Timer.StartTimer ( )
53 {
54 timer.Start(activityMode);
55 }

References activityMode, and timer.

Referenced by AwaitFinish().

◆ Update()

virtual void IuvoUnity.DataStructs.Timer.Update ( )
virtual
106 {
107 if (tickMode == Tick_Mode.TICK_ON_UPDATE)
108 {
109 UpdateTimer();
110 }
111 }

References tickMode, and UpdateTimer().

◆ UpdateTimer()

void IuvoUnity.DataStructs.Timer.UpdateTimer ( )
101 {
102 timer.Tick(activityMode, Time.deltaTime);
103 }

References activityMode, and timer.

Referenced by FixedUpdate(), LateUpdate(), and Update().

Member Data Documentation

◆ activityMode

◆ tickMode

Tick_Mode IuvoUnity.DataStructs.Timer.tickMode

◆ timer

Property Documentation

◆ Configured

bool IuvoUnity.DataStructs.Timer.Configured
getset

Implements IuvoUnity.Interfaces.IConfigurable.

172{ get; set; }

Referenced by OnConfigure().

◆ Reconfigured

bool IuvoUnity.DataStructs.Timer.Reconfigured
getset

Implements IuvoUnity.Interfaces.IReconfigurable.

181{ get; set; }

Referenced by OnReconfigure().


The documentation for this class was generated from the following file:
  • D:/Unity/IuvoUnityCore/Assets/IuvoUnity/Runtime/DataStructs/TImer.cs