public void OnTriggerEnter(Collider other) { if (other.name != "Player" || IsDestroyed) { return; } _audioManager.Play("PlatformDestruction"); _cameraShake.enabled = false; _cameraShake.enabled = true; _platformDebrisParticleSystem.Play(true); gameObject.transform.parent.gameObject.GetComponent <Animator>() .Play("PlatformParentDestroyAnimation"); if (Vibration.HasVibrator()) { Vibration.Vibrate(20); } if (!_playerScript.IsDestructive && !IsDestroyable && !_playerScript.IsBoosted && !_playerScript.IsAddingLosingLife && !_playerScript.IsExploding) { _gameManager.LoseLife(); _playerDebrisParticleSystem.Play(true); if (!_playerScript.IsAboutToExplode) { _playerParentAnim.Play("PlayerParentHitAnimation"); } } if (IsDestroyable || _playerScript.IsExploding) { _playerScript.AddToScore(50, false); } if (_playerScript.IsDestructive) { _playerScript.AddToScore(20, false); } var components = gameObject.GetComponents <Collider>(); Destroy(components[0]); Destroy(GetComponent <Light>()); IsDestroyed = true; }
private void OnTriggerEnter(Collider other) { if (!other.gameObject.CompareTag("Player")) { return; } switch (_type) { case PowerUpManager.PowerUp.Type.BoostFwd: _audioManager.Play("BoostFwd"); if (!_playerScript.IsAddingLosingLife && !_playerScript.IsRespawning && !_camAnim.GetCurrentAnimatorStateInfo(0) .IsName("ExplosionAnimation")) { _camAnim.CrossFadeInFixedTime("BoostFwdAnimation", 0.18f); } _playerScript.IsBoosted = true; _playerScript.IsFwdBoost = true; break; case PowerUpManager.PowerUp.Type.BoostBack: _audioManager.Play("BoostBack"); if (!_playerScript.IsAddingLosingLife && !_playerScript.IsRespawning && !_camAnim.GetCurrentAnimatorStateInfo(0) .IsName("ExplosionAnimation")) { _camAnim.CrossFadeInFixedTime("BoostBackAnimation", 0.18f); } _playerScript.IsBoosted = true; _playerScript.IsFwdBoost = false; break; case PowerUpManager.PowerUp.Type.Destruction: _audioManager.Play("Destruction"); if (!_camAnim.GetCurrentAnimatorStateInfo(0) .IsName("ExplosionAnimation")) { _camAnim.CrossFadeInFixedTime("DestructionAnimation", 0.18f); } _playerScript.IsDestructive = true; _anim.Play("IdleDestructionStart"); if (!_playerScript.IsAboutToExplode && !_playerScript.IsExploding) { _parentAnim.Play( "PlayerParentIdleAnimationWithDestruction"); } _destructionBarAnim.Play("Turn On"); _timer.ZeroDestruction(); break; case PowerUpManager.PowerUp.Type.Magnet: _audioManager.Play("Magnetism"); if (!_camAnim.GetCurrentAnimatorStateInfo(0) .IsName("ExplosionAnimation")) { _camAnim.CrossFadeInFixedTime("MagnetismAnimation", 0.18f); } _playerMagnetLightAnim.Play("MagnetismPlayerLightTurnOn"); _playerScript.IsMagnetising = true; _magnetismParticles.Play(true); _magnetismBarAnim.Play("Turn On"); _timer.ZeroMagnet(); break; case PowerUpManager.PowerUp.Type.Projectiles: _audioManager.Play("Projectiles"); if (!_camAnim.GetCurrentAnimatorStateInfo(0) .IsName("ExplosionAnimation")) { _camAnim.CrossFadeInFixedTime("ProjectilesAnimation", 0.18f); } _playerScript.IsProjectiles = true; _projectiles.Play(true); _projectilesBarAnim.Play("Turn On"); _timer.ZeroProjectiles(); break; case PowerUpManager.PowerUp.Type.Explosion: _audioManager.Play("Explosion"); _camAnim.CrossFadeInFixedTime("ExplosionAnimation", 0.18f); _parentAnim.Play("PlayerParentAboutToExplodeAnimation", -1, 0f); _playerScript.IsAboutToExplode = true; // _projectiles.Play(true); _explosionBarAnim.Play("Turn On"); _timer.ZeroExplosion(); break; case PowerUpManager.PowerUp.Type.ExtraLife: _audioManager.Play("AddLife"); _gameManager.AddLife(); if (!_camAnim.GetCurrentAnimatorStateInfo(0) .IsName("ExplosionAnimation")) { _camAnim.CrossFadeInFixedTime("AddLifeAnimation", 0.18f); } if (!_playerScript.IsAboutToExplode && !_playerScript.IsExploding) { _parentAnim.Play("AddLifeAnimation"); } break; case PowerUpManager.PowerUp.Type.Slowdown: _audioManager.Play("Slowdown"); if (!_camAnim.GetCurrentAnimatorStateInfo(0) .IsName("ExplosionAnimation")) { _camAnim.CrossFadeInFixedTime("SlowdownAnimation", 0.18f); } _gameManager.Slowdown(); if (_platformManager.PlatformSpeed - SlowdownFactor > _platformManager.InitialPlatformSpeed) { _platformManager.SlowdownFactor += SlowdownFactor; } else { _platformManager.SlowdownFactor += 0.0f; } break; default: throw new ArgumentOutOfRangeException(); } if (_hasVibrator) { Vibration.Vibrate(20); } for (var i = _powerUps.Count - 1; i >= 0; i--) { if (_powerUps[i]._object.GetComponent <Collider>() == _collider) { _powerUps.RemoveAt(i); } } _playerScript.AddToScore(50f, false); Destroy(gameObject.transform.GetChild(0).gameObject); Destroy(gameObject); }