時間が経過するほど、実行間隔を短くできるように、スクリプトを作成してみましょう。
ボールの発射を2秒間隔からスタートしますが、時間経過とともに、0.2秒ずつ間隔が短くなっていきます。
タイマーが進むにつれて発射のペースが早くなり、最後は連射状態になります。
関連記事:
ボタンを押しているときだけ間隔時間を縮める
1秒おきにPrefabをランダム表示・非表示
マウスを押した時間だけオブジェクトを拡大
指定した秒数になればオブジェクトの種類を変える
時間経過とともにペースを上げる
Cubeを作成します。
Sphereを作成し、リジッドボディを追加します。
Sphereをプロジェクトビューにドラッグ&ドロップし、プレハブに変換します。
Sphereの元データは削除しておきます。
BallShot.csを作成し、Cubeに追加します。
BallShot.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallShot : MonoBehaviour { [SerializeField] GameObject prefab; private float IntervalTime; private float time; void Start() { time = 2.0f; IntervalTime = 2.0f; } void Update() { time += Time.deltaTime; if(time > IntervalTime) { GameObject ball = GameObject.Instantiate (prefab) as GameObject; ball.GetComponent<Rigidbody>().AddForce(transform.forward * 500); time = 0; if(IntervalTime > 0.2f) { IntervalTime -= 0.2f; } } } } |
プレハブのフィールドに、Sphereのプレハブデータを入れます。
ゲームプレイしましょう。
スタートでは2秒経過してから発射。
その後、時間が経過していくうちに、だんだん発射間隔が短くなっていきます。
関連記事:
ボタンを押しているときだけ間隔時間を縮める
1秒おきにPrefabをランダム表示・非表示
マウスを押した時間だけオブジェクトを拡大
指定した秒数になればオブジェクトの種類を変える