Пример #1
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        Debug.Log("CRUSHED");
        InanimateObject obj = collision.gameObject.GetComponent <InanimateObject>();

        //animator.SetTrigger("die");
        if (obj && obj.IsFalling())
        {
            // Vector3 scale = mushroom_t.localScale;
            //Debug.Log(scale);
            // scale.y /= 10;
            //Debug.Log("new:  "+scale);
            //mushroom.transform.localScale = scale;
            // mushroom.transform.localPosition += new Vector3(0f,mushroom_t.localPosition.x,0f);


            animator.SetTrigger("die");
            audioSource.Stop();
            particle.Stop();
            audioSource.volume = 1f;
            audioSource.PlayOneShot(death);
            blood.Play();

            Physics2D.IgnoreCollision(collision, GetComponent <Collider2D>());
        }
    }
Пример #2
0
    private void OnCollisionExit2D(Collision2D collision)
    {
        InanimateObject obj = collision.gameObject.GetComponent <InanimateObject>();

        if (obj)
        {
            animator.SetBool("attact", true);
        }
    }
Пример #3
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        Debug.Log("CRUSHED");
        InanimateObject obj = collision.gameObject.GetComponent <InanimateObject>();

        if (obj && obj.IsFalling())
        {
            player.die();
            Physics2D.IgnoreCollision(collision, GetComponent <Collider2D>());
        }
    }
Пример #4
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        InanimateObject obj = collision.gameObject.GetComponent <InanimateObject>();

        if (obj)
        {
            animator.SetBool("attact", false);
        }

        if (collision.gameObject.CompareTag("Player"))
        {
            playerController player = collision.gameObject.GetComponent <playerController>();
            player.die();
        }
    }
Пример #5
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        Physics2D.IgnoreCollision(GetComponent <Collider2D>(), collision.collider);

        ContactPoint2D contact = collision.GetContact(0);

        if (contact.collider.gameObject.CompareTag(ReflectorTag))
        {
            m_shotDirection = Vector2.Reflect(m_shotDirection, contact.normal);

            m_shotDirection.Normalize();
        }
        else
        {
            // reflect.Play();
            reflect_particle particle = Instantiate(reflect.GetComponent <reflect_particle>());
            particle.transform.parent     = collision.gameObject.transform;
            particle.transform.localScale = Vector3.one;
            particle.transform.position   = collision.contacts[0].point + collision.contacts[0].normal * 0.01f;
            float cosTheta = Vector3.Dot(collision.contacts[0].normal, Vector3.up);
            float theta    = Mathf.Acos(cosTheta);
            Debug.Log(theta);
            particle.transform.rotation = Quaternion.Euler(-90 - theta * 180 / Mathf.PI, 90, -90);

            particle.Play();
            //reflect.GetComponent<reflect_particle>().play();
            //Debug.Log("shoot" + "   :  " + reflect.isPlaying);


            InanimateObject obj = contact.collider.gameObject.GetComponent <InanimateObject>();
            if (obj)
            {
                obj.ApplyGravity(m_gravityDirection);
            }
            killTime        = m_timeAlive;
            m_shotDirection = Vector3.zero;
            GetComponent <Collider2D>().enabled = false;
        }
    }