Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
 public void RotateFace()
 {
     transform.DOLocalRotate(Vector3.up * 180f, 0.2f, RotateMode.LocalAxisAdd);
     PoolAudioSource.PlayClipAtPoint(GameSettings.Default.Sounds.BlockFaceRotation, transform.position);
 }