発射するミサイルの弾数を制限できるように、スクリプトを作成してみましょう。
左クリックでSphereを発射しますが、5発で打てなくなります。
右クリックすれば、弾数制限が解除されて、再び発射できるようになります。
関連記事:
弾が消えなければ次を撃てなくする
消えれば次のPrefabが発射可能
発射したボールをカーブさせる
発射する数の制限と解除
Sphereを作成してリジッドボディを追加します。
プロジェクトビューにドラッグ&ドロップして、プレハブ化します。
Sphereの元データは削除しておきます。
空のオブジェクトを作成。
ShotCount.csを作成し、GameObject(空のオブジェクト)に追加します。
ShotCount.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ShotCount : MonoBehaviour { public GameObject prefab; private int count; void Start() { count = 0; } void Update() { if(Input.GetMouseButtonDown(0)) //左クリックで発射 { if(count < 5) //5発まで弾数制限 { GameObject ball = GameObject.Instantiate (prefab)as GameObject; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Vector3 dir = ray.direction; ball.GetComponent<Rigidbody>().AddForce(dir * 2000); count++; } } if(Input.GetMouseButtonDown(1)) //右クリック { count = 0; //弾数制限を解除 } } } |
プレハブのフィールドに、Sphereのプレハブデータを入れます。
ゲームプレイしましょう。
左クリックを押して発射しますが、5発打てば、それ以上は発射できません。
右クリックを押せば、5発の弾数制限が解除され、再び発射できるようになります。