FireContinuously not working correctly

Hi everyone,

I m having a problem with the FireContinuously method and the while(true).

When I hold Space button the lasers shoots dont appear. The only appear once (on the first space pressing). Here is my code

// config params
	[SerializeField] float moveSpeed = 10f;
	[SerializeField] float padding = 1f;
	[SerializeField] GameObject laserPrefab;
	[SerializeField] float projectileSpeed = 10f;
	[SerializeField] float projectileFiringPeriod = 0.1f;

	Coroutine firingCoroutine;

	float xMin;
	float xMax;

	float yMin;
	float yMax;

	// Use this for initialization
	void Start () {
		SetUpMoveBoundaries();
	}
	
	// Update is called once per frame
	void Update () {
		Move();
		Fire();
	}

	  private void Fire()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            firingCoroutine = StartCoroutine(FireContinuously());
        }
        if (Input.GetButtonUp("Fire1"))
        {
            StopCoroutine(firingCoroutine);
        }
    }

    IEnumerator FireContinuously()
    {
        while (true)
        {
            GameObject laser = Instantiate(
                    laserPrefab,
                    transform.position,
                    Quaternion.identity) as GameObject;
            laser.GetComponent<Rigidbody2D>().velocity = new Vector2(0, projectileSpeed);
            //AudioSource.PlayClipAtPoint(shootSound, Camera.main.transform.position, shootSoundVolume);
            yield return new WaitForSeconds(projectileFiringPeriod);
        }
    }

What am i missing?

Thanks

Privacy & Terms