カウントダウンタイマーを00:00でストップしたい。

CountDown

上記のようなカウントダウンのBPを作成しました。
10秒から1秒ずつ減少していきます。

作成方法は以下の通りです。

①:アクタークラスのBPを新規に作り、
Text Renderコンポーネントを追加します。変数も「Seconds」と「Minutes」(int型)と2つ作成。「Minutes」には0,「Seconds」には10を代入しました。

②:次にText Renderコンポーネントにタイマーを表示させるBPを作成。これをマクロに折りたたみみ、「Set timer」と命名。ビューポートで作成内容が反映されると思います。

③:そして、int変数に代入された数を1ずつ減らす関数「Counts Down」を作成。変数「Seconds」が-1になったとき、59にリセットして、かつ変数「Minutes」も1減らす。

④:イベントグラフにて「Set timer by Function Name」を使用。1秒ごとに関数「Counts Down」を実行するようになってます。

後のブランチでは、2つの変数がどちらも0に等しいときに、「Clear timer by Function Name」でタイマーをクリアするという処理をします。これにより、タイマーが00:00を迎えたとき、関数の処理を停止してタイマーがストップする(…と思ってましたが、ここで問題が発生します。)

ここまで見ていただき、ありがとうございました。
さて、ここで問題なのがこのカウントダウンは00:00を超えて負の数に突入してしまいます。

Failed CountDown

理想としては、「00:00になった瞬間にタイマーが止まる」です。
何が間違っているのか、ご教授いただければ幸いです。
何卒、よろしくお願い致します。

時間を停止するこのコードは、「プレイ開始」でのみ実行されます。秒がゼロを超えるたびに実行する必要があります

早速のご回答、まことにありがとうございます。

アドバイスを自分なりに解釈した結果、以下のようにコードを変更しましたが、いかがでしょうか?

そして、これでも失敗してしまいます。
私が無知でせっかく頂いたアドバイスを理解できてないようです…

大変申し訳ございませんが、もう一度詳細を教えていただけますでしょうか?

お忙しいところ恐縮ですが、何卒よろしくお願いいたします。

これ

ここに入ります

image

タイマーを止める処理はタイマー処理の中でやりましょう
BeginPlay は開始時に1度実行されるのみで、Branchを挟んでおけば勝手に思い出して再実行してくれる、というものではありません
Counts Down 内で SecondsMinutes が両方0になったときにタイマー停止を実行してください

蛇足ですが、計算は秒のみで扱い、分は計算で出すほうが変数が1つになるのでカウントの変更も判定も単純になるので楽になるでしょう

00:00で止まりました!ありがとうございました!