public BulletContent GetFromPool() { BulletContent bullet = Main.BulletMain.bulletsPool.Dequeue(); bullet.gameObject.SetActive(true); return(bullet); }
private void MoveBullet(BulletContent bullet) { var step = 2 * Time.deltaTime; var position = bullet.gameObject.transform.forward * Time.deltaTime; bullet.rb.AddForce(bullet.gameObject.transform.forward * 0.07f, ForceMode.Impulse); }
private static void GetBulletFromPool(Vector3 positionForBullet) { BulletContent bullet = Main.BulletMain.bulletPooling.GetFromPool(); bullet.transform.position = positionForBullet; bullet.transform.LookAt(Main.EnemyMain.player.transform); }
private void AddToPool(BulletContent bullet) { bullet.rb.velocity = Vector3.zero; bullet.gameObject.transform.position = UtilityCustom.GetRandomPosition(); Main.BulletMain.bulletsPool.Enqueue(bullet); bullet.gameObject.SetActive(false); }
private static void SpawnNewBullet(Vector3 positionForBullet) { BulletContent bullet = Instantiate(Main.BulletMain.bulletRef.bulletToSpawn, positionForBullet, Quaternion.identity); bullet.transform.LookAt(Main.EnemyMain.player.transform); bullet.transform.parent = Main.BulletMain.bulletsKeeper; Main.BulletMain.bullets.Add(bullet); Main.BulletMain.BulletSpawned(bullet); }
private void BulletCollected(Collision other, BulletContent bullet) { if (other.gameObject.CompareTag("Wall")) { Main.BulletMain.BulletHitWall(bullet); } else if (other.gameObject.CompareTag("Player")) { Main.EnemyMain.GameOver(); } else { bullet.gameObject.SetActive(false); } }
private void AddCatcherToBullet(BulletContent bullet) { bullet.collisionCatcher.OnCollisionEnterEvent += collis => BulletCollected(collis, bullet); }
public void BulletHitWall(BulletContent bullet) { onBulletHitWall?.Invoke(bullet); }
public void BulletSpawned(BulletContent bullet) { onBulletSpawned?.Invoke(bullet); }