public override void Fire(Vector2 pos) { Bullet bullet = ObjectPooler.instance.GetPooledObject(); if (!bullet) { return; } bullet.gameObject.SetActive(true); bullet.transform.position = pos; bullet.Init(velocity, lifeTime); }
public override void Fire(Vector2 pos) { for (int i = 0; i < numberOfProjectiles; i++) { Vector2 offsetVector = new Vector2(0, -((numberOfProjectiles - 1) * offsetAmount / 2) + offsetAmount * i); Bullet bullet = ObjectPooler.instance.GetPooledObject(); if (!bullet) { return; } bullet.gameObject.SetActive(true); bullet.transform.position = pos + offsetVector; bullet.Init(velocity, lifeTime); } }
public override void Fire(Vector2 pos) { for (int i = 0; i < numberOfProjectiles; i++) { Vector2 rotatedVector = Quaternion.AngleAxis((-spreadAmount * numberOfProjectiles / 2) + spreadAmount * i, Vector3.forward) * Vector2.right; Bullet bullet = ObjectPooler.instance.GetPooledObject(); if (!bullet) { return; } bullet.gameObject.SetActive(true); bullet.transform.position = pos; bullet.Init(velocity, lifeTime, rotatedVector); } }