void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Item") // entra en contacto con un iterm y se activa la capacidad de interactuar con este { PickableItem pim = other.GetComponent <PickableItem>(); currentItem = pim; canInteract = true; } else if (other.tag == "RoomDetector") { if (other.gameObject.GetComponent <PickableItem>() != null) { //La puerta tiene un candado currentItem = other.GetComponent <PickableItem>(); canInteract = true; } else if (other.GetComponent <RoomDetectorContoller>() != null) { currentRoomDetector = other.GetComponent <RoomDetectorContoller>(); canGoDoor = true; } else if (other.GetComponent <DoorwayLockController>() != null) { doorwayLockDetector = other.GetComponent <DoorwayLockController>(); canInteract = true; } } }
/// <summary> /// Metodo que maneja el recibimiento de inputs dentro del juego /// </summary> void Inputs() { // Interaccion con el boton de interactuar y un objeto interactuable if (canInteract && Input.GetButton("Fire1")) { if (currentItem != null) { if (currentItem.type == InteractableObjectType.Food) { playerInverntoryControlerReference.AddFoodRation(); Destroy(currentItem.gameObject); } else if (currentItem.type == InteractableObjectType.Item) { playerInverntoryControlerReference.AddItem(currentItem); } else if (currentItem.type == InteractableObjectType.LockedDoor) { if (CheckDoor()) { currentRoomDetector = currentItem.GetComponent <RoomDetectorContoller>(); canInteract = false; canGoDoor = true; Destroy(currentItem); } else { canInteract = false; //No tienes la llave papu } } } else if (doorwayLockDetector != null) { int posInventory = CheckDoorway(); if (CheckDoorway() != -1) { canInteract = false; doorwayLockDetector.DoEvents(); List <PickableItemInfo> currentInventory = playerInverntoryControlerReference.GetInventory(); //currentInventory[posInventory]. } else { canInteract = false; } } } // parte que maneja el entrar a una puerta desbloqueada o que no tenia seguro double horizontalMove = Input.GetAxis("Horizontal"); double verticalMove = Input.GetAxis("Vertical"); enterDoor(horizontalMove, verticalMove); }
void OnTriggerExit2D(Collider2D other) { if (other.tag == "Item") { PickableItem pim = other.GetComponent <PickableItem>(); if (currentItem != null && pim == currentItem) { currentItem = null; canInteract = false; } } else if (other.tag == "RoomDetector") { if (other.gameObject.GetComponent <PickableItem>() != null) { PickableItem pim = other.GetComponent <PickableItem>(); if (currentItem != null && pim == currentItem) { currentItem = null; canInteract = false; } } else if (other.gameObject.GetComponent <RoomDetectorContoller>() != null) { currentRoomDetector = null; canGoDoor = false; } else if (other.gameObject.GetComponent <DoorwayLockController>() != null) { doorwayLockDetector = null; canInteract = false; } } }