private void OnCollisionEnter2D(Collision2D other)
    {
        if (!other.enabled)
        {
            return;
        }

        if (KillEnemy && other.gameObject.CompareTag("Enemy"))
        {
            Explode();

            KillInteractable killInteractable = other.gameObject.GetComponent <KillInteractable>();
            if (killInteractable != null)
            {
                killInteractable.Explode();
            }
            else
            {
                Destroy(other.gameObject);
            }
        }
        else if (KillPlayer && other.gameObject.CompareTag("Player"))
        {
            Explode();

            PlayerControls player = other.gameObject.GetComponent <PlayerControls>();
            if (player != null)
            {
                player.Explode();
            }
        }
        else if (DieFromPlanet && other.gameObject.CompareTag("Planet"))
        {
            Explode();

            if (DamagePlanet)
            {
                GameData.Instance.Expirience += 1;
            }
        }
    }
Beispiel #2
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (!collision.enabled)
        {
            return;
        }

        if (collision.gameObject.CompareTag("Enemy"))
        {
            KillInteractable killInteractable = collision.gameObject.GetComponent <KillInteractable>();
            if (killInteractable == null)
            {
                return;
            }

            if (killInteractable.CoinReward > 0)
            {
                GameData.Instance.Coins += killInteractable.CoinReward;
                SpawnLabel(collision.contacts[0].point, killInteractable.CoinReward);
                killInteractable.CoinReward = 0; // To avoid double rewarding
            }
        }
    }