/// <summary> /// Projectile hit something. Let's return it to pool. /// </summary> /// <param name="projectile">The collided projectile.</param> public void ProjectileHit(Projectile projectile) { ProjectilePool pool = Global.Instance.Pools.GetPool(_projectileType); if (pool != null) { pool.ReturnObjectToPool(projectile); } else { Destroy(projectile.gameObject); } }
void Return() { GameObject explosionPrefab = ProjectilePool.GetObjectFromPool("ProjectileExplosion"); if (explosionPrefab) { explosionPrefab.transform.position = transform.position; ParticleSystem[] ps = explosionPrefab.GetComponentsInChildren <ParticleSystem>(); for (int i = 0; i < ps.Length; ++i) { ps[i].Play(); } StartCoroutine(ReturnParticle(explosionPrefab)); } _seek.target = null; ProjectilePool.ReturnObjectToPool("Missile", this.gameObject); }
public void ProjectileHit(Projectile projectile) { _projectilePool.ReturnObjectToPool(projectile); }
IEnumerator ReturnParticle(GameObject explosionPrefab) { yield return(new WaitForSeconds(4)); ProjectilePool.ReturnObjectToPool("ProjectileExplosion", explosionPrefab); }
//Al detectar impacto por Raycast ya no lo necesito //void OnTriggerEnter(Collider collider) //{ // SpaceShip spaceship = collider.GetComponentInParent<SpaceShip>(); // if (spaceship) { spaceship.ReceiveDamage(1); } // laserManager.ReturnLaser(gameObject); //} void Return() { ProjectilePool.ReturnObjectToPool("Laser", this.gameObject); }