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(); }
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)); //} } }