ボールを連打で飛ばさないようにする方法【Unity】

ゲームといえば「連打」というキーワードをイメージする人も多いんじゃないでしょうか。

現在制作中の的当てゲームも、タップ及びクリックを連打する度にボールを飛ばせる状態です。

今回はそんな的当てゲームにおける連打機能の修正を行っていきます。

スポンサーリンク

的当てゲームにおける連打機能を修正する

連打出来るならそれでいいじゃんと思う所ですが、一概にそうとも言えません。

試しにゲームを実行して、連打しまくるとどうなるのか見てみましょう。

ボールを連続で飛ばす様子

このように高速連打するとボール同士が衝突して、狙ったところに飛ばせなくなります。

別にエラーが発生するわけではないので、連打できる仕様が間違っている訳ではないんですけどね。

個人的には、ボールが散らばりすぎて何のゲームなのか分からなくなりそうな雰囲気です。

ボールが大量に飛んでいく爽快感を残したいのであればこのままでも良いでしょう。

ただ、ボールを飛ばす間隔を簡単に制限することも出来るので、参考程度に確認してもらえればと思います。どちらの仕様を採用するのかはおまかせってところですね。

ボールジェネレータスクリプトを修正して連打を制限する

ボールジェネレータスクリプトに少し処理を加えることで連打に合わせてボールを飛ばせないように出来ます。

ボール同士の間隔を修正したスクリプト

修正したのは画像の赤枠の部分になります。

float型で「span」を宣言します。要するにボール同士の間隔を指定する変数です。

ゲームが始まるまでのカウントダウン中は無関係なので、その中にspanに関する記述は不要です。

ゲームが開始された後の27行目にて「span -= Time.deltaTime;」と記述しました。

これまでもたくさんTime.deltaTimeを使ってきたので大体分かると思います。

spanに秒数を代入してやり、フレーム毎にTime.deltaTimeを使って秒数を引いていきます。

そして、28行目でタップ及びクリックされて尚且つspanが0以下の時にボールを生成して飛ばせるようにしています。

その後は、連続でボールが飛ばないようにspanに1を代入して1秒間タップ及びクリックを無効にします。

ゲーム開始直後にボールが飛ばせないのは不便なので、最初にspanを0で初期化しておきます。

修正出来たら保存してさっそく動作チェックしましょう。

一定間隔でボールが飛ぶ様子

一定間隔でボールが飛んでいますね。一応全力でクリックしまくってみましたが、これ以上短い間隔でボールが飛ぶことはなかったです。

spanの値を調整することで、ボール同士の間隔は変更できるのでお試しあれ。