Unity事例ノート

UNITY

連射防止のしくみ

ミサイルやボールを発射する際、何発もPrefab生成されては困るケースもあります。

今回は、1秒間に1発しか撃てないように、ボール発射を制限してみます。

関連記事:
n秒おきに発射をくり返す
キーを長押しでn秒おきに発射
360°全方位に向けて発射
指定の座標からn秒おきに発射
マウス長押しでn秒おきにミサイル連射

Prefabデータの用意

まずはボールのPrefabを作成します。

Sphereオブジェクトを作成し、色をつけました。

Sphereをプレハブ化します。

Sphereの元データは削除しておきましょう。

連射させないスクリプト

続いて、連射防止のスクリプトを作ります。

まずは、空のオブジェクトを作成しましょう。

GameObjectという名前で空のオブジェクトが出来ています。

ここに、BallShot.csを作成して追加しましょう。

BallShot.csを書きます。

Ballのフィールドができるので、ここにSphereを入れましょう。

続いて、ボールに動きをつけるためのスクリプトを作成します。

Sphereのプレハブに、SphereMove.csを作成して追加しましょう。

リジッドボディを追加します。

SphereMove.csを書きましょう。

ゲームプレイして、動作を確認します。

いくらクリックを連打しても、次のボールが発射されません。

関連記事:
n秒おきに発射をくり返す
キーを長押しでn秒おきに発射
360°全方位に向けて発射
指定の座標からn秒おきに発射
マウス長押しでn秒おきにミサイル連射