Beispiel #1
0
    void OnCollisionExit(Collision collision)
    {
        if (collision.gameObject.GetComponent <Rigidbody>())
        {
            collision.gameObject.GetComponent <Rigidbody>().isKinematic = true;
        }
        if ((collision.collider.gameObject.CompareTag("wall") || collision.collider.gameObject.CompareTag("blast")))
        {
            hitWall = false;
        }

        if (collision.gameObject.tag == "tele")
        {
            teleController tc2 = collision.gameObject.GetComponent <teleController>();

            StartCoroutine(wait());



            IEnumerator wait()
            {
                yield return(new WaitForSeconds(1.5f));

                tc2.tele = true;
            }
        }
    }
Beispiel #2
0
    void OnTriggerStay(Collider other)
    {
        if (other.gameObject.tag == "Fixedtele")
        {
            teleController tc = other.gameObject.GetComponent <teleController>();
            if (tc.tele)
            {
                StartCoroutine(startto());
            }


            IEnumerator startto()
            {
                GameObject     otherP = tc.teleport_other;
                teleController tc2    = otherP.gameObject.GetComponent <teleController>();

                tc2.tele = false;
                yield return(new WaitForSeconds(1));

                //tilePickupAudio.PlayOneShot(mm.teleportAudio);
                tilePickupAudio.PlayOneShot(mm.dropBlueAudio);

                Vector3 off = 2 * otherP.transform.TransformDirection(Vector3.up);

                transform.position = otherP.transform.position + new Vector3(off.x, 0, off.z);
                if (chat && canMove && canPortal)
                {
                    cc.chat.text = "Cool!!!!!!";
                }
                tilePickupAudio.PlayOneShot(mm.surprise);
            }
        }
    }
Beispiel #3
0
    void OnTriggerExit(Collider other)
    {
        if (other.gameObject.CompareTag("green") || other.gameObject.CompareTag("red") || other.gameObject.CompareTag("blue"))
        {
            eat = true;
        }


        if (other.gameObject.tag == "Fixedtele")
        {
            teleController tc2 = other.gameObject.GetComponent <teleController>();

            StartCoroutine(wait());



            IEnumerator wait()
            {
                yield return(new WaitForSeconds(1));

                tc2.tele = true;
            }
        }
    }
Beispiel #4
0
    void OnCollisionEnter(Collision collision)
    {
        if (collision.collider.gameObject.CompareTag("floor") || collision.collider.gameObject.CompareTag("move"))
        {
            jump = true;
        }

        if (collision.collider.gameObject.CompareTag("sand"))
        {
            jump = false;
            StartCoroutine(dekroy(collision.collider.gameObject));
        }
        else if ((collision.collider.gameObject.CompareTag("wall") || collision.collider.gameObject.CompareTag("blast")) && lastHit > 1f)
        {
            hitWall = true;
            lastHit = 0;
            tilePickupAudio.PlayOneShot(mm.question);
            if (chat)
            {
                cc.chat.text = Name.Myname + "!" + "Damn, you just let my  head  hit the wall";
            }
        }

        if (collision.gameObject.tag == "tele" && powerups.tele_num == 2)
        {
            float          d1  = Vector3.Distance(powerups.yellowbox1.transform.position, transform.position);
            float          d2  = Vector3.Distance(powerups.yellowbox2.transform.position, transform.position);
            teleController tc1 = powerups.yellowbox1.gameObject.GetComponent <teleController>();
            teleController tc2 = powerups.yellowbox2.gameObject.GetComponent <teleController>();
            if (d1 < d2)
            {
                StartCoroutine(startto1());
            }
            else if (d1 >= d2)
            {
                StartCoroutine(startto2());
            }



            IEnumerator startto1()
            {
                Vector3 offset = powerups.yellowbox2.transform.position - powerups.yellowbox1.transform.position;

                offset.Normalize();
                float   facing;
                Vector3 directionUP = powerups.yellowbox2.transform.TransformDirection(Vector3.forward);

                if (Vector3.Dot(offset, directionUP) > Vector3.Dot(offset, -directionUP))
                {
                    offset = 8 * directionUP;
                    facing = powerups.yellowbox2.transform.rotation.eulerAngles.y;
                }
                else
                {
                    offset = -8 * directionUP;
                    facing = powerups.yellowbox2.transform.rotation.eulerAngles.y + 180;
                }
                transform.position = powerups.yellowbox2.transform.position + new Vector3(offset.x, 0, offset.z);
                transform.rotation = Quaternion.Euler(0, facing, 0);
                tc1.tele           = false;
                tilePickupAudio.PlayOneShot(mm.teleportAudio);
                yield return(new WaitForSeconds(0.5f));
            }

            IEnumerator startto2()
            {
                Vector3 offset = powerups.yellowbox1.transform.position - powerups.yellowbox2.transform.position;

                offset.Normalize();
                float   facing;
                Vector3 directionUP = powerups.yellowbox1.transform.TransformDirection(Vector3.forward);

                if (Vector3.Dot(offset, directionUP) > Vector3.Dot(offset, -directionUP))
                {
                    offset = 8 * directionUP;
                    facing = powerups.yellowbox1.transform.rotation.eulerAngles.y;
                }
                else
                {
                    offset = -8 * directionUP;
                    facing = powerups.yellowbox1.transform.rotation.eulerAngles.y + 180;
                }
                transform.position = powerups.yellowbox1.transform.position + new Vector3(offset.x, 0, offset.z);
                transform.rotation = Quaternion.Euler(0, facing, 0);
                tc2.tele           = false;
                yield return(new WaitForSeconds(0.5f));

                tilePickupAudio.PlayOneShot(mm.teleportAudio);
            }

            tilePickupAudio.PlayOneShot(mm.surprise);
            if (chat)
            {
                cc.chat.text = Name.Myname + "," + "Tell me where is the other side of the portal. It is not hell, right?";
            }
        }
    }