private void Update() { RaycastHit hit; InteractableObject interactableObject = null; //if the player is looking at an interactable object if (Physics.Raycast(playerCamera.position, playerCamera.forward, out hit, range, interactableLayer)) { interactableObject = hit.collider.gameObject.GetComponent <InteractableObject>(); if (interactableObject != null) { interactionText.text = interactableObject.GetInteractionText(); } else { interactionText.text = ""; } } else { interactionText.text = ""; } if (Input.GetButtonDown("Fire2") && interactableObject != null) { interactableObject.Activate(); } }
public void Interaction(InputAction.CallbackContext ctx) { // gameObject.scene.IsValid check is necessary due to a bug in InputSystem: http://answers.unity.com/answers/1762099/view.html if (ctx.performed && gameObject.scene.IsValid()) { if (availableWeaponSlot && availableWeaponSlot.AvailableForInteraction) { isInteractingWithWeapon = !isInteractingWithWeapon; availableWeaponSlot.SetPlayerInteraction(isInteractingWithWeapon); } else if (availableInteractableObject) { availableInteractableObject.Activate(); } } }
private void Update() { if (isMoving) { if (moveForward) { if (slerpValue >= 1) { Debug.Log("made it"); isMoving = false; moveForward = false; io.Activate(); backButton.enabled = true; slerpValue = 0; } else { slerpValue = (currentTime - startTime) / duration; controledCamera.transform.position = Vector3.Slerp(originalPosistion, cameraPosition.transform.position, slerpValue); controledCamera.transform.rotation = Quaternion.Slerp(originalDirection, cameraPosition.transform.rotation, slerpValue); currentTime += Time.deltaTime; } } else { if (slerpValue >= 1) { isMoving = false; moveForward = true; playerCamera.enabled = true; controledCamera.enabled = false; disableUI.SetActive(true); slerpValue = 0; } else { slerpValue = (currentTime - startTime) / duration; controledCamera.transform.position = Vector3.Slerp(cameraPosition.transform.position, originalPosistion, slerpValue); controledCamera.transform.rotation = Quaternion.Slerp(cameraPosition.transform.rotation, originalDirection, slerpValue); currentTime += Time.deltaTime; } } } }
private void InteractWithObject(GameObject interactableObject) { _interactableObject = interactableObject.GetComponent <InteractableObject>(); _interactableObject.Activate(transform.position); }