Exemplo n.º 1
0
 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;
         }
     }
 }
Exemplo n.º 2
0
 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);
     }
 }