Esempio n. 1
0
    private void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.CompareTag("Meteor"))
        {
            //play some collision audio
            audioData.PlayOneShot(meteor_collision_audio);
            GameObject part = collision.contacts[0].thisCollider.gameObject;
            // despawn Meteor
            meteorSpawnScript.AddDeactivatedMeteor(collision.gameObject);

            //only damage ship parts
            if (!part.Equals(this.gameObject))
            {
                broken[part.GetComponent <ShipPart>().partNumber] = true;
                collideEffect(part.GetComponent <ShipPart>().partNumber);
                part.SetActive(false);
            }

            // do something when all parts are broken or main part was hit
            if (part.Equals(this.gameObject))
            {
                for (int i = 4; i >= 0; i--)
                {
                    if (!broken[i])
                    {
                        broken[i] = true;
                        shipParts[i].gameObject.SetActive(false);
                        collideEffect(i);
                        break;
                    }
                    if (i == 0)
                    {
                        // TODO lose the game!
                        loadScene.LoadGameOverScreen();
                    }
                }
            }
        }

        if (collision.gameObject.CompareTag("Collectible"))
        {
            audioData.PlayOneShot(collectible_collision_audio);
            meteorSpawnScript.AddDeactivatedCollectible(collision.gameObject);
            //TODO add method
            logic.GetComponent <GameLogic>().AddCollectible();
        }
    }