//Helper function that returns a random sound effect for this biome corresponding to the explosion type required. public AudioClip GetRandomExplosionSound(ExplosionClass explosionType) { EffectsGroup activeGroup = m_EffectsGroups[m_ActiveEffectsGroup]; switch (explosionType) { case ExplosionClass.Small: return(activeGroup.smallExplosionSounds[Random.Range(0, activeGroup.smallExplosionSounds.Length)]); case ExplosionClass.Large: return(activeGroup.largeExplosionSounds[Random.Range(0, activeGroup.largeExplosionSounds.Length)]); case ExplosionClass.ExtraLarge: return(activeGroup.extraLargeExplosionSounds[Random.Range(0, activeGroup.extraLargeExplosionSounds.Length)]); case ExplosionClass.BounceExplosion: return(activeGroup.bouncyBombExplosionSounds[Random.Range(0, activeGroup.bouncyBombExplosionSounds.Length)]); case ExplosionClass.TankExplosion: return(activeGroup.tankExplosionSounds[Random.Range(0, activeGroup.tankExplosionSounds.Length)]); case ExplosionClass.TurretExplosion: return(activeGroup.turretExplosionSounds[Random.Range(0, activeGroup.turretExplosionSounds.Length)]); default: return(null); } }
private void CreateVisualExplosion(Vector3 explosionPosition, Vector3 explosionNormal, ExplosionClass explosionClass) { Effect spawnedEffect; switch (explosionClass) { case ExplosionClass.ExtraLarge: spawnedEffect = Instantiate(m_EffectsGroup.extraLargeExplosion); break; case ExplosionClass.Large: spawnedEffect = Instantiate(m_EffectsGroup.largeExplosion); break; case ExplosionClass.Small: spawnedEffect = Instantiate(m_EffectsGroup.smallExplosion); break; case ExplosionClass.TankExplosion: spawnedEffect = Instantiate(m_EffectsGroup.tankExplosion); break; case ExplosionClass.TurretExplosion: spawnedEffect = Instantiate(m_EffectsGroup.turretExplosion); break; case ExplosionClass.BounceExplosion: spawnedEffect = Instantiate(m_EffectsGroup.smallExplosion); break; case ExplosionClass.FiringExplosion: spawnedEffect = Instantiate(m_EffectsGroup.firingExplosion); break; default: spawnedEffect = null; break; } if (spawnedEffect == null) { return; } spawnedEffect.transform.position = explosionPosition; spawnedEffect.transform.up = explosionNormal; var sound = spawnedEffect.GetComponentInChildren <AudioSource>(); if (sound == null) { return; } sound.clip = ThemedEffectsLibrary.Instance.GetRandomExplosionSound(explosionClass); sound.Play(); }
/// <summary> /// Make a pretty explosion on clients /// </summary> public void DestroyExplosion(GameObject destoryObj, ExplosionClass explosionClass) { int ClassIndex = (int)explosionClass; ExplosionCache pool = m_ExplosionCache[ClassIndex]; if (pool != null) { destoryObj.SetActive(false); } else { MonoBehaviour.Destroy(destoryObj); } }
/// <summary> /// Make a pretty explosion on clients /// </summary> private void RpcVisualExplosion(Vector3 explosionPosition, Vector3 explosionNormal, ExplosionClass explosionClass) { CreateVisualExplosion(explosionPosition, explosionNormal, explosionClass); }
private void CreateVisualExplosion(Vector3 explosionPosition, Vector3 explosionNormal, ExplosionClass explosionClass) { Effect spawnedEffect = null; /* * switch (explosionClass) * { * case ExplosionClass.ExtraLarge: * spawnedEffect = Instantiate<Effect>(m_EffectsGroup.extraLargeExplosion); * break; * case ExplosionClass.Large: * spawnedEffect = Instantiate<Effect>(m_EffectsGroup.largeExplosion); * break; * case ExplosionClass.Small: * spawnedEffect = Instantiate<Effect>(m_EffectsGroup.smallExplosion); * break; * case ExplosionClass.TankExplosion: * spawnedEffect = Instantiate<Effect>(m_EffectsGroup.tankExplosion); * break; * case ExplosionClass.TurretExplosion: * spawnedEffect = Instantiate<Effect>(m_EffectsGroup.turretExplosion); * break; * case ExplosionClass.BounceExplosion: * spawnedEffect = Instantiate<Effect>(m_EffectsGroup.smallExplosion); * break; * case ExplosionClass.FiringExplosion: * spawnedEffect = Instantiate<Effect>(m_EffectsGroup.firingExplosion); * break; * } */ spawnedEffect = Instantiate <Effect>(firingExplosion); if (spawnedEffect != null) { spawnedEffect.transform.position = explosionPosition; spawnedEffect.transform.up = explosionNormal; /* * AudioSource sound = spawnedEffect.GetComponentInChildren<AudioSource>(); * if (sound != null) * { * sound.clip = ThemedEffectsLibrary.s_Instance.GetRandomExplosionSound(explosionClass); * sound.Play(); * } */ } }