Beispiel #1
0
 private void OnCollisionEnter2D(Collision2D collision)
 {
     if (collision.gameObject.tag == "Obstacles" ||
         collision.gameObject.tag == "Spikes")
     {
         if (collision.gameObject.tag == "Obstacles")
         {
             particleEffects.ShowBloodObstacleEffect(transform);
         }
         else
         {
             particleEffects.ShowBloodSpikeEffect(transform);
         }
         GameObject destroyed;
         destroyed = Instantiate(destroyedPlayer as GameObject);
         destroyed.transform.position = this.gameObject.transform.position;
         if (!GameManager.showAdScreen && GameManager.elligibleForRevive)
         {
             GameManager.showAdScreen = true;
             GameManager.rewardUsed   = 1;
         }
         else if (!GameManager.elligibleForRevive)
         {
             GameManager.showAdScreen = false;
             GameManager.playerDead   = true;
         }
         ContactPoint2D contact = collision.contacts[0];
         Vector3        dir     = contact.point - new Vector2(destroyed.transform.position.x, destroyed.transform.position.y);
         dir = -dir.normalized;
         Rigidbody2D[] rgb = destroyed.GetComponentsInChildren <Rigidbody2D>();
         foreach (Rigidbody2D r in rgb)
         {
             if (collision.gameObject.tag == "Obstacles")
             {
                 FindObjectOfType <AudioManager>().Play("saw death");
                 r.AddForce(new Vector2(destroySpeedOnObstacle, destroySpeedOnObstacle), ForceMode2D.Impulse);
             }
             if (collision.gameObject.tag == "Spikes")
             {
                 FindObjectOfType <AudioManager>().Play("spike death");
                 r.AddForce(new Vector2(destroySpeedOnSpike, destroySpeedOnSpike), ForceMode2D.Impulse);
             }
         }
         //GameManager.showAdScreen = true;
         Destroy(this.gameObject);
     }
 }