メインコンテンツへスキップ
< すべてのトピックに戻る

UIボタンを一定時間クールダウンで連打できないようにするには?

ボタンが押された瞬間に button.interactable = false;で操作不能にし、Unity 6の Awaitable 等を使って指定秒数待機した後に trueに戻します。

「攻撃」や「購入」などの重要な処理が、ユーザーの悪意ある連打や通信ラグによる連打で2回以上実行されてしまい、ゲームデータがおかしくなる重大なバグ(多重処理)を物理的に防ぐためです。

ボタンのOnClickイベントに登録したメソッドの先頭で非アクティブ化し、await Awaitable.WaitForSecondsAsync(1.5f);のような非同期待機を行った後、最後に再びアクティブ状態に戻す記述をします。

目次

9周年キャンペーン実施中 早い申込みほど受講料がお得に