Beispiel #1
0
 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));
         }
     }
 }