예제 #1
0
    protected virtual void AsteroidCollision(Collision2D collision) //vid en kollision som sker med ett objekt med taggen "asteroid" förstörs asteroiden som kolliderades med och lasern som kolliderade
    {
        AsteroidController asteroid = collision.gameObject.GetComponent <AsteroidController>();

        asteroid.DestroyAsteroid(true);
        DestroyLazer();
    }
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.CompareTag("laser") || collision.CompareTag("GameController"))
        {
            return;
        }
        else if (collision.CompareTag("boss"))
        {
            GameController.Instance.GameOver("death");
            Instantiate(GameController.Instance.shipExplosion, transform.position, Quaternion.identity);
            SoundController.Instance.PlayerExplosion();
            Destroy(gameObject);

            return;
        }
        else if (collision.CompareTag("shield") && curShieldIndex != 3)
        {
            Destroy(collision.gameObject);
            OnShieldUp();
            return;
        }
        else if (collision.CompareTag("capsule") && (curWeaponIndex == 6 || curWeaponIndex == 7))
        {
            return;
        }
        else if (collision.CompareTag("capsule"))
        {
            CapsuleMov data = collision.gameObject.GetComponent <CapsuleMov>();
            curWeaponIndex = data.carryWeaponIndex;
            bulletsLeft    = data.amountBullets;

            Destroy(collision.gameObject);

            SoundController.Instance.GearUp();

            return;
        }
        else if (collision.CompareTag("coin"))
        {
            Destroy(collision.gameObject);
            GameController.Instance.coins++;

            SoundController.Instance.CoinCollected();

            return;
        }

        if (curShieldIndex == 3)
        {
            return;
        }
        if (curShieldIndex != -1)
        {
            AsteroidController asteroid = collision.gameObject.GetComponent <AsteroidController>();
            EnemyController    enemy    = collision.gameObject.GetComponent <EnemyController>();
            if (asteroid != null)
            {
                asteroid.DestroyAsteroid();
            }
            else if (enemy != null)
            {
                enemy.DestroyEnemy();
            }
            else
            {
                Destroy(collision.gameObject);
            }

            OnShieldDown();

            Handheld.Vibrate();
            return;
        }

        GameController.Instance.GameOver("death");

        Destroy(collision.gameObject);

        //explosion
        Instantiate(GameController.Instance.shipExplosion, transform.position, Quaternion.identity);

        //sound
        SoundController.Instance.PlayerExplosion();

        Destroy(gameObject);
    }