void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == "Asteroid" || collision.gameObject.tag == "Barrier" || collision.collider.gameObject.tag == "CrystalAsteroid") { AsteroidController asteroid = collision.gameObject.GetComponent <AsteroidController>(); float maxDamage = asteroid.maxDamage; float damage = Mathf.Clamp((collision.relativeVelocity.magnitude / maxSpeedCollision * maxDamage), (maxDamage / 2), maxDamage); if (!shieldActive) { if (!isHit) { changeHealth(-damage); hitShip(); } shoveShip(-(collision.gameObject.transform.position - this.transform.position)); } else { asteroid.shoveAsteroid((collision.gameObject.transform.position - this.transform.position)); } } }