Ejemplo n.º 1
0
    private void OnCollisionEnter(Collision other)
    {
        float   power    = other.relativeVelocity.magnitude;
        Vector3 position = other.contacts[0].point;

        switch (other.transform.tag)
        {
        case "Destructable":
            Quaternion rotation = Quaternion.Inverse(Quaternion.LookRotation(other.contacts[0].normal));
            GameManager <MainOperator> .Instance.effectManagerComponet.Collision(position, Vector3.one, rotation, power);

            Building building = other.transform.GetComponent <Building>();
            GameManager <MainOperator> .Instance.cameraComponent.Shake(0.35f, 0.33f, 1.0f);

            GameManager <UIOperator> .Instance.managerComponent.UpdateScore(building.Explode(power * 100f, position), GameManager <MainOperator> .Instance.playerComponent.scoreValueMultiple);

            m_rigidbody.velocity = m_velocityOld;
            GameManager <SoundOperator> .Instance.managerComponent.CreateAudioSource(GameManager <SoundOperator> .Instance.sfxType[(__SFXType)Random.Range((int)__SFXType.Broken1, (int)__SFXType.Broken3)], position);

            break;

        case "Item":
            GameManager <MainOperator> .Instance.cameraComponent.Shake(0.11f, 0.33f, 1.0f);

            GameItem gameItem = other.transform.GetComponent <GameItem>();
            gameItem.Explode(GameManager <MainOperator> .Instance.playerComponent, power * 100f, position);
            m_rigidbody.velocity = m_velocityOld;
            GameManager <SoundOperator> .Instance.managerComponent.CreateAudioSource(GameManager <SoundOperator> .Instance.sfxType[(__SFXType)Random.Range((int)__SFXType.Broken1, (int)__SFXType.Broken3)], position);

            break;
        }
    }