Example #1
0
        private void SpawnChunks()
        {
            Vector3 parentMomentum;

            parentMomentum = RB.velocity * RB.mass * SPAWN_MOMENTUM_SCALE;

            for (int k = 0; k < 4; k++)
            {
                Transform      t     = Instantiate(AsteroidChunkPrefab, AsteroidChunkSockets[k].position, Quaternion.identity) as Transform;
                Asteroid_Chunk chunk = t.gameObject.GetComponent <Asteroid_Chunk>() as Asteroid_Chunk;

                var direction = (t.position - transform.position).normalized;

                chunk.RB.AddForce(parentMomentum / chunk.RB.mass);
                //chunk.SetVelocity(direction * AsteroidChunkSpawnSpeed);
            }

            Transform      Explosion = Instantiate(ExposionPrefab, transform.position, Quaternion.identity) as Transform;
            ForceExplosion explosion = Explosion.gameObject.AddComponent <ForceExplosion>();

            explosion.ExplosiveForceAmount = 500;
            explosion.MaxExplosiveRadius   = 15;
            explosion.Duration             = 0.05f;
            explosion.StartExplosion();
        }
Example #2
0
    private void SpawnPrefabOnHit()
    {
        if (!string.IsNullOrEmpty(impactObjectToSpawn))
        {
            GameObject     newSpawn       = ObjectPooler.instance.GrabFromPool(impactObjectToSpawn, transform.position, transform.rotation);
            ForceExplosion forceExplosion = newSpawn.GetComponent <ForceExplosion>();
            if (forceExplosion)
            {
                forceExplosion.Init(fireData);
            }

            //PaintImpactParticle pip = newSpawn.GetComponent<PaintImpactParticle>();
            //if (pip)
            //{
            //    pip.Initialise(PlayerManager.instance.entity.paintController.GetPaintColor((PaintController.PaintType)fireData.paintType));
            //}
        }
    }