public void OnDestroyedAsteroid(params object[] parameters) { if (parameters[0] is AsteroidDataPacakge) { AsteroidDataPacakge ap = (AsteroidDataPacakge)parameters[0]; asteroidPool.DisablePoolObject(ap.asteroid); if (ap.size > 0) //IF ASTEROID IS NOT THE SMALLEST, DIVIDE IT { CreateChildrenAsteroids(ap.position, ap.size, ap.direction); } else { //IF THE ASTEROID IS THE SMALLEST, ADD 1 smallAsteroidCounter++; if (smallAsteroidCounter >= smallAsteroidsForNextSpawn) { SpawnNewAsteroid(); smallAsteroidCounter = 0; } return; } } }
private void SpawnExplosionFX(params object[] parameters) { if (parameters[0] is AsteroidDataPacakge) { AsteroidDataPacakge ap = (AsteroidDataPacakge)parameters[0]; var pc = particlePool.GetPoolObject(); if (!pc.GetObj.initialized) { pc.GetObj.Awake(); } pc.GetObj.SetPosition(ap.position); //Instantiate(explosionPrefab, ap.position, Quaternion.identity); } if (parameters[0] is ShipDataPackage) { ShipDataPackage sp = (ShipDataPackage)parameters[0]; var pc = particlePool.GetPoolObject(); if (!pc.GetObj.initialized) { pc.GetObj.Awake(); } pc.GetObj.SetPosition(sp.player.transform.position); //Instantiate(explosionPrefab, ap.position, Quaternion.identity); } if (parameters[0] is ExplosionDataPackage) { ExplosionDataPackage ep = (ExplosionDataPackage)parameters[0]; var pc = particlePool.GetPoolObject(); if (!pc.GetObj.initialized) { pc.GetObj.Awake(); } pc.GetObj.SetPosition(ep.source.position); //Instantiate(explosionPrefab, ap.position, Quaternion.identity); } }