前提・実現したいこと
銃弾を数秒間ごとに発射させ連射打ちさせないようにしたい
発生している問題・エラーメッセージ
一発目の銃弾を打った後は設定している時間が経過したら銃弾を打てるがそれ以降組んだプログラムが起動しないことがある。
ほとんどが最初以外起動しない。
inspectorで銃弾は1→0にはなっています。
また0→1にも戻ります。
エラーメッセージ
特になし
該当のソースコード
C#言語
public GameObject item;
public int bulletCount;
public Transform muzzle; public float speed = 100; private void Start() { bulletCount = 1; } private void Update() { if (Input.GetKeyDown("left ctrl") && bulletCount > 0) { bulletCount -= 1; GameObject items = Instantiate(item) as GameObject; Vector3 force; force = this.gameObject.transform.forward * speed; items.GetComponent<Rigidbody>().AddForce(force); items.transform.position = muzzle.position; } if(bulletCount <= 0) { StartCoroutine(SetBullet()); } } IEnumerator SetBullet() { yield return new WaitForSeconds(5f); bulletCount = 1; }
試したこと
Tagがないというこれとは関係ないエラーが出ていたのでこれが原因かと思い、解消したが解決しませんでした。
もしかしてif(bulletCountが0)の時のスクリプトの位置に問題があるとかですかね。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー