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; } } }
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); } } }
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; } } }
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?"; } } }