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