押しっぱなしで射撃再開

マウスの左ボタンを押したままで撃ち続けて、弾がなくなったらリロードを実行。

割り込んだリロード処理中もマウスを押し続けているとき、射撃を再開してくれる。

というのを作りたいです。

今はリロードが入ると、一度指を離してクリックしなおさないといけません。

EventTickで押しっぱなしを取得するというのを見つけてやってみました。

当たり前ですけど、マイフレーム呼ばれるものなので、成功はしましたが、鬼のような発射レートになってしまいます。

何かいい方法はないでしょうか。

よろしくお願いします。

タイマー処理を使いましょう。マウスクリックのPressedイベントが来たらタイマーをオン、Releasedが来たらタイマーをオフにします。オンの間は定期的にタイマーイベントが処理され、弾を撃つ処理を呼び出します。撃つ処理に来る度に弾の数をチェックし、0発になっていたらリロード処理を行います。

リロード中は一旦タイマー処理を解除し、リロードが完了するまではタイマーが再開されないようにしておきます。リロードが完了と同時に再度タイマー処理を登録し、そのまま撃つ続けるというシーケンスを行なうことが可能です。

UE4 一定時間ごとのタイマー処理を行う(Set Timer by Event、Clear and Invalidate Timer by Handle)

http://kagring.blog.fc2.com/blog-entry-352.html