Beispiel #1
0
        public void DestroyBrick(bool powerupDrop = true, Quaternion particleRotation = new Quaternion())
        {
            if (particleRotation.z == 0)
            {
                particleRotation = Quaternion.identity;
            }

            // Move and rotate particle effect
            var position = transform.position;

            position.z = -4;
            _brickDestroyEffect.transform.position = position;

            _brickDestroyEffect.transform.rotation = particleRotation;

            // Play particle effect
            _brickDestroyEffect.GetComponent <ParticleSystem>().startColor = GetComponent <SpriteRenderer>().color;
            _brickDestroyEffect.GetComponent <ParticleSystem>().Emit((int)(transform.parent.localScale.x * 8));

            // Drop powerup
            if (powerupDrop)
            {
                _powerupManager.DropPowerup(Powerup, transform);
                _soundManager.PlayBrickBreakSound();
            }

            // Add points
            _gameManager.AddScore(PointValue * HealthTotal);
            _gameManager.AddToComboValue();

            // Reset and 'Destroy' brick
            Reset();
            gameObject.SetActive(false);
        }