private void OnTriggerEnter2D(Collider2D other) { switch (other.tag) { case "Player": { if (_player) { _player.UpdateScore(); _audioSource.Play(); if (CompareTag("Enemy")) { _onEnemyDeath.SetTrigger("OnEnemyDeath"); } else { ExplosionVisual(); } other.transform.GetComponent <Player>().Damage(); Destroy(this.gameObject, 2.8f); Destroy(GetComponent <Collider2D>()); Destroy(_rammingSpeedVisual.gameObject); _hackVisual.SetActive(false); if (!CompareTag("Enemy")) { _enemyThruster[1].SetActive(false); } _enemyThruster[0].SetActive(false); _isAlive = false; _speed = .5f; _spawnManager.AddEnemyDeathCount(); } break; } case "Enemy": { Enemy enemy = other.GetComponentInParent <Enemy>(); if (enemy.IsEnemyHacked() || _enemyHacked) { _player.UpdateScore(); Destroy(this.gameObject, 2.8f); Destroy(GetComponent <Collider2D>()); Destroy(_rammingSpeedVisual.gameObject); _hackVisual.SetActive(false); _audioSource.Play(); if (CompareTag("Enemy")) { _onEnemyDeath.SetTrigger("OnEnemyDeath"); } else { ExplosionVisual(); } if (!CompareTag("Enemy")) { _enemyThruster[1].SetActive(false); } _enemyThruster[0].SetActive(false); _isAlive = false; _speed = .5f; _spawnManager.AddEnemyDeathCount(); } break; } case "Player_Laser": { LaserDamage(other); break; } } }