private void OnCollisionEnter2D(Collision2D c) { if (c.gameObject.CompareTag("Player")) { Vector2 destination = transform.position; Vector2Int distance = Vector2Int.zero; CameraRoom cr = null; if (doorType == Orientation.VerticleDoor) { distance.y = (c.gameObject.transform.position.y > transform.position.y) ? -1 : 1; destination.y += 1 * distance.y; cr = (distance.y > 0) ? rooms[1] : rooms[0]; } else if (doorType == Orientation.HorizontalDoor) { distance.x = (c.gameObject.transform.position.x > transform.position.x) ? -1 : 1; destination.x += 1 * distance.x; cr = (distance.x > 0) ? rooms[1] : rooms[0]; } StartCoroutine(TravelThroughDoor(destination, cr)); } }
private IEnumerator TravelThroughDoor(Vector2 destination, CameraRoom room) { pmScript.AddRestrictions(); yield return(new WaitForSeconds(0.1f)); yield return(StartCoroutine(cmScript.SetupDoorAnim(destination, room))); doorCollider.enabled = false; pmScript.WalkToDoor(destination); doorCollider.enabled = true; //Reset Obstacles ResettableMechanic.ResetAll(); pmScript.RemoveRestrictions(); Player.Get.SetRespawnPoint(destination); }
private void Awake() { instance = this; enableRoom(); }
void Start() { cam = Camera.main.gameObject.GetComponent<CameraRoom>(); }