Timing

From Unreal Wiki, The Unreal Engine Documentation Site
Revision as of 09:51, 31 August 2011 by WGH (talk | contribs) (GetTimerRate)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


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. If inRate <= 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