InvokeRepeatingを使って、n秒経過してからはじまり、m秒おきに実行できるスクリプトを作成しましょう。
今回の例では、1秒経つとボールを発射。
その後、0.5秒おきに発射をリピートします。
関連記事:
キーを長押しでn秒おきに発射
マウス長押しでn秒おきにミサイル連射
n秒おきに回転しながら前方へ発射
Updateを使わずにn秒おきにずっと実行する
Updateの中でn秒おきにずっと実行する
n秒おきに発射をくり返す
3秒おきに出現して撃ってくる
指定の座標からn秒おきに発射
n秒おきに回転しながら前方へ発射
3秒おきに出現と消滅をくり返す
1秒経過しなければクリックで実行できない
同じサイズだけ位置をずらしてPrefab生成
InvokeRepeatingで一定間隔のリピート
Sphereを作成して、リジッドボディを追加します。
プロジェクトビューにドラッグ&ドロップして、Prefabに変換します。
Sphereの元データは削除しておきます。
空のオブジェクトを作成します。
BallShot.csを作成し、GameObject(空のオブジェクト)に追加します。
BallShot.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallShot : MonoBehaviour { public GameObject prefab; void Start() { InvokeRepeating("BallSpawn", 1.0f, 0.5f); } void BallSpawn() { GameObject ball = GameObject.Instantiate (prefab)as GameObject; ball.GetComponent<Rigidbody>().AddForce(transform.forward * 1000); } } |
プレハブのフィールドに、Sphereを入れます。
ゲームプレイしてみましょう。
スタートから1秒経つとボールが飛んで以降、0.5秒おきにずっと発射し続けます。
関連記事:
キーを長押しでn秒おきに発射
マウス長押しでn秒おきにミサイル連射
n秒おきに回転しながら前方へ発射
Updateを使わずにn秒おきにずっと実行する
Updateの中でn秒おきにずっと実行する
n秒おきに発射をくり返す
3秒おきに出現して撃ってくる
指定の座標からn秒おきに発射
n秒おきに回転しながら前方へ発射
3秒おきに出現と消滅をくり返す
1秒経過しなければクリックで実行できない
同じサイズだけ位置をずらしてPrefab生成