2 Guns aren't meant to fire together but they do
Hi. I have two guns on my spaceship. When the player presses space, the 2 guns are meant to fire half a second apart from each other. However, they currently fire together then wait five seconds before firing together again. How can I fix this? thanks
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Shooting : MonoBehaviour
{
public Transform[] Guns;
public float BulletSpeed = 10;
public float BulletSize = 20;
public GameObject BulletType;
float reloadtime = 0.5f;
float nextfiretime = 0f;
void Gunfire2()
{
if(Input.GetKey("space") && Time.time > nextfiretime)
{
foreach (Transform N in Guns)
{
GameObject Bullet = Instantiate(BulletType, N.transform.position, N.transform.rotation) as GameObject;
Bullet.transform.localScale = new Vector3(BulletSize, BulletSize, BulletSize);
Bullet.GetComponent<Rigidbody>().AddForce(Bullet.transform.forward * BulletSpeed);
nextfiretime = Time.time + reloadtime;
}
}
else
{
}
}
IEnumerator GunFire()
{
if (Input.GetKey("space"))
{
foreach (Transform N in Guns)
{
GameObject Bullet = Instantiate(BulletType, N.transform.position, N.transform.rotation) as GameObject;
Bullet.transform.localScale = new Vector3(BulletSize, BulletSize, BulletSize);
Bullet.GetComponent<Rigidbody>().AddForce(Bullet.transform.forward * BulletSpeed);
yield return new WaitForSeconds(0.5f);
}
}
}
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
Gunfire2();
}
}
Sorry for lack of code, but I'm on mobile. I might be able to point you in the right direction though.
I think the problem is you are doing a foreach on the two Transforms. It's running the loop through both objects without any delay.
Try something like this. Add both the gun transforms into a list.
This will give you guns[0] and guns[1].
Then in an ienumerator:
While (Input.Get$$anonymous$$ey("space")) { Guns[0] emit bullet WaitForSeconds(0.5f); Guns[1] emit bullet WaitForSeconds (0.5f); } return null;
I hope that helps?
Your answer
Follow this Question
Related Questions
Please help me solve the problem with shoot a gun(HTC VIVE) 1 Answer
FPS Gun Hold 0 Answers
Problem with a shooting script. 0 Answers
Huge Health and Damage Script Problem 0 Answers
Don't know how to end animation of shooting ! (code) Please help ! 0 Answers