マウスを長押しして一定時間が経過すれば、発射できるようにスクリプトを作成してみましょう。
今回の例では、マウスを長押しして3秒後に、ボールを連射できるようにします。
長押しの秒数による条件設定
Sphereを作成し、リジッドボディを追加。
Sphereをプレハブ化します。
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 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallShot : MonoBehaviour { public GameObject prefab; float blankTime; //はじめの3秒間 float time; //連射の間隔 void Start() { blankTime = 3; } void Update() { if(Input.GetMouseButton(0)) { blankTime -= Time.deltaTime; if(blankTime < 0) { time -= Time.deltaTime; if (time < 0) { GameObject ball = Instantiate(prefab, transform.position,Quaternion.identity); ball.GetComponent<Rigidbody>().AddForce(transform.forward * 1000); time = 0.5f; } } } else { blankTime = 3; } } } |
プレハブのフィールドに、Sphereを入れます。
ゲームプレイして、動きを確認しましょう。
マウスを3秒間長押しした後に、0.5秒おきにボールが連射できるようになります。