Timing
This article is a stub. You can help Unreal Wiki by expanding it. |
Timing is a family of functions using which you can schedule other functions to be called asynchronously
at a interval. Only SetTimer
exists in UT2004.
Like in JavaScript, despite asynchronous nature of SetTimer, UnrealScript is still
single-threaded. It means that you don't have to worry about thread-safety. Race conditions are still possible though.
Functions
SetTimer
<uscript> native final function SetTimer(
float inRate, optional bool inbLoop, // not optional in UT2004 optional Name inTimerFunc='Timer', // doesn't exist in UT2004 optional Object inObj // doesn't exist in UT2004
);</uscript> Sets a timer to call the given function at a set interval. Defaults to calling the 'Timer' event if no function is specified. If inRate is set to 0.f it will effectively disable the previous timer.
inRate
- time interval, in gameplay seconds. IfinRate <= 0.0
, it'll reset the timer.inbLoop
- if false, it'll fire only once. Default to false.
inTimerFunc
- function name.inObj
- unknown.
ClearTimer
<uscript>
native final function ClearTimer(
optional Name inTimerFunc='Timer',
optional Object inObj
);</uscript>
Clears a previously set timer.
inTimerFunc
- function name.
inObj
- unknown.
IsTimerActive
<uscript>
native final function bool IsTimerActive(
optional Name inTimerFunc='Timer',
optional Object inObj
);
</uscript>
Checks is specified timer is active.
inTimerFunc
- function name.
inObj
- unknown.
GetTimerCount
<uscript>
native final function float GetTimerCount(
optional Name inTimerFunc='Timer',
optional Object inObj
);
</uscript>
Gets the current count for the specified timer, defaults to 'Timer' if no function is specified.
Returns -1.f if the timer is not currently active. See GetTimerRate
below for explanation.
inTimerFunc
- function name.
inObj
- unknown.
GetTimerRate
<uscript>
native final function float GetTimerRate(
optional name TimerFuncName = 'Timer',
optional Object inObj
);
</uscript>
Gets the current rate for the specified timer.
GetTimerRate('SomeTimer') - GetTimerCount('SomeTimer')
is the time remaining before 'SomeTimer' is called.
In other words, "count" starts at 0, increases, and when it reaches "rate", timer is fired.
inTimerFunc
- function name.
inObj
- unknown.
How to make seconds real
Multiply rate by WorldInfo.TimeDilation
. Of course, this method isn't absolutely reliable,
as TimeDilation may change before timer fires.
See also