public void MakeExplosion(Vector3 where, ExplosionSize size, List <Texture> limbs) { GameObject g = Instantiate <GameObject>(explosionatorPrefab, transform); g.transform.position = where; g.GetComponent <Explosionator>().FireEffect(where, size, limbs); }
public void CreateExplosion(Vector3 position, Gradient[] colors, ExplosionSize size) { Debug.Log("Explosion"); try { GameObject explosion = Instantiate(Resources.Load("Explosions/Explosion"), position, new Quaternion(0, 0, 0, 0)) as GameObject; ParticleSystem particleSystem = explosion.GetComponent <ParticleSystem>(); ParticleSystem.MainModule mainModule = particleSystem.main; mainModule.startColor = new ParticleSystem.MinMaxGradient(colors[0], colors[1]); switch (size) { case ExplosionSize.Small: mainModule.startLifetime = 0.75f; mainModule.startSpeed = 6.0f; break; case ExplosionSize.Medium: mainModule.startLifetime = 2.0f; mainModule.startSpeed = 4.0f; break; case ExplosionSize.Large: mainModule.startLifetime = 3.0f; mainModule.startSpeed = 3.0f; break; } Destroy(explosion, 3.0f); } catch { Debug.LogError("Explosion Instantiation failed"); } }
/// <summary> /// Plays the explosion animation /// </summary> /// <param name="size">Size of the explosion to play</param> public void PlayExplosion(ExplosionSize size) { switch (size) { case ExplosionSize.Small: gameObject.transform.localScale = smallScale; break; case ExplosionSize.Default: gameObject.transform.localScale = defaultScale; break; case ExplosionSize.Big: gameObject.transform.localScale = bigScale; break; default: break; } anim.SetBool("playAnim", true); }
public void FireEffect(Vector3 where, ExplosionSize size, List <Texture> partsList) { GameObject inkTemp = Instantiate(Resources.Load <GameObject>("ExplosionResources/WetExplosion"), this.transform); inkTemp.transform.position = where; inkParticleSystem = inkTemp.GetComponent <ParticleSystem>(); if (size == ExplosionSize.Small) { inkParticleSystem.Emit(15); } else if (size == ExplosionSize.Medium) { inkParticleSystem.Emit(25); } else if (size == ExplosionSize.Large) { inkParticleSystem.Emit(40); } GameObject newLimbEmitter = Resources.Load <GameObject>("ExplosionResources/NewLimb"); Material newLimbMat = Resources.Load <Material>("ExplosionResources/LimbMat"); for (int i = 0; i < partsList.Count; i++) { GameObject emitterGO = Instantiate(newLimbEmitter, this.transform); emitterGO.transform.position = where; limbParticleSystems.Add(emitterGO); Material instLimbMat = Instantiate <Material>(newLimbMat); instLimbMat.SetTexture("_MainTex", partsList[i]); ParticleSystem pS = emitterGO.GetComponent <ParticleSystem>(); pS.GetComponent <ParticleSystemRenderer>().material = instLimbMat; pS.Emit(1); } Invoke("_Cleanup", 5); }