private void PlayExplosionFx() { PoolAudioSource.PlayClipAtPoint(GameSettings.Default.Sounds.BlockExplosion, transform.position, 1f, Random.Range(0.8f, 1.2f)); var explosionParticles = this.PoolInstantiate <ParticleSystem>(m_explosionFx, transform.position, m_explosionFx.transform.rotation); var particleRenderer = explosionParticles.GetComponent <ParticleSystemRenderer>(); if (particleRenderer) { particleRenderer.sharedMaterial = m_disabled? GameSettings.Default.Visual.BlockDisabledMaterial : m_blockScheme.BlockMaterial; } this.PoolDestroy(explosionParticles.gameObject, explosionParticles.main.duration); }
private void FixedUpdate() { float f = (transform.position.x - m_waveSpeed * Time.time); float waveHeight = m_amplitude * (2f * Mathf.PerlinNoise(f, 0.5f) - 1f); float waterDeep = (m_waterLevel + waveHeight) - transform.position.y; if (waterDeep > 0) { if (m_playWaterSplash) { m_playWaterSplash = false; PoolAudioSource.PlayClipAtPoint(GameSettings.Default.Sounds.WaterSplash, transform.position, 1f, Random.Range(0.8f, 1.2f)); } m_rigidBody.AddForce(Vector3.up * m_waterForce * (waterDeep + 1f), ForceMode.Force); } }
public void RotateFace() { transform.DOLocalRotate(Vector3.up * 180f, 0.2f, RotateMode.LocalAxisAdd); PoolAudioSource.PlayClipAtPoint(GameSettings.Default.Sounds.BlockFaceRotation, transform.position); }