マウスの左ボタンを押したままで撃ち続けて、弾がなくなったらリロードを実行。
割り込んだリロード処理中もマウスを押し続けているとき、射撃を再開してくれる。
というのを作りたいです。
今はリロードが入ると、一度指を離してクリックしなおさないといけません。
EventTickで押しっぱなしを取得するというのを見つけてやってみました。
当たり前ですけど、マイフレーム呼ばれるものなので、成功はしましたが、鬼のような発射レートになってしまいます。
何かいい方法はないでしょうか。
よろしくお願いします。
タイマー処理を使いましょう。マウスクリックのPressedイベントが来たらタイマーをオン、Releasedが来たらタイマーをオフにします。オンの間は定期的にタイマーイベントが処理され、弾を撃つ処理を呼び出します。撃つ処理に来る度に弾の数をチェックし、0発になっていたらリロード処理を行います。
リロード中は一旦タイマー処理を解除し、リロードが完了するまではタイマーが再開されないようにしておきます。リロードが完了と同時に再度タイマー処理を登録し、そのまま撃つ続けるというシーケンスを行なうことが可能です。
UE4 一定時間ごとのタイマー処理を行う(Set Timer by Event、Clear and Invalidate Timer by Handle)