public SimpleBulletPool(GameObject objectPrefab, int sizePool, Bullet bullet, Transform _position) { perent = _position; objectStack = new Queue <BulletView>(); _objectPrefab = objectPrefab; _objectPrefab.SetActive(false); _bullet = bullet; for (int i = 0; i < sizePool; i++) { GameObject newObject = Object.Instantiate(_objectPrefab, perent.position, Quaternion.identity) as GameObject; BulletView bulletView = newObject.GetComponent <BulletView>(); bulletView.SetDamage(_bullet.Power); objectStack.Enqueue(bulletView); } }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "Respawn") { DestroyAsteroid(); } if (collision.tag == "Bullet") { if (HpEvent != null) { BulletView bullet = collision.gameObject.GetComponent <BulletView>(); HpEvent?.Invoke(bullet.GetDamage()); ScoreEvent?.Invoke(1); bullet.DestroyBullet(); } } }
public static void PutBullet(BulletView bullet) { pool.PutObject(bullet); }
public void PutObject(BulletView currentObject) { currentObject.gameObject.SetActive(false); objectStack.Enqueue(currentObject); }