UnrealEngineでタイマー処理から残り時間を取得する方法
タイマー処理を使って時間をセットし残り時間が0になったら、別のイベントを呼び出すような処理
を書いたので、UnrealEngine4でタイマー処理から残り時間を取得する方法を書きたいと思います。
上部の例では、何秒か待った後にキャラクタを発射させるようなドカンを実装しています。
実装するにあたって、始動から発火するまでの秒数を参照する必要がありますが、
自分で変数を持ち管理しなくとも、SetTimerByEventメソッドを使うことで時間取得することができます。
何秒間か待った後にイベントを発生させる処理
何秒か待った後に、イベントを発生させるメソッドとして、delayメソッドがありますが、
SetTimerByEventメソッドを使うことによって、
イベントが発生するまでの残り時間・経過時間を簡単に取得することができます。
SetTimerByEventでは、返り値として、TimerHanlder構造体が返却され、
イベントが発火するまでの残り時間をGetTimerRemainingTimebyHandleメソッドで
タイマーの経過時間をGetTimerElapsedTimebyHandlerメソッドにより取得できます。
Timeには、イベントが発生するまでの時間(1で1秒)を入力し、
インプットノードのEventには、Timeに設定した値が0になった時に呼ばれるイベントを指定します。
上記のイベントのノードは下図になります。
例のように、GetTimerRemainingTimebyHandleより取得した残り時間を描画したい場合は、
イベントTickやTimerEventなどのフレームごとに呼び出される関数内で実装してください。
(あたりまえだけど)
UnrealEngine4.19で確認しています。