private void InteractInfoManager() { interactTestTimer += Time.fixedDeltaTime; if (interactTestTimer >= interactTestInterval) { if (grabbedObject == null) { bool enableDisplay = false; RaycastHit hit; if (Physics.Raycast(head.transform.position, head.transform.forward, out hit, interactRange, layermaskInteract)) { if (TagManager.CompareTag("Interactable", hit.collider.gameObject)) { if (hit.collider.gameObject != lastInteractObject) { currentInteractObject = hit.collider.gameObject.GetComponent <IInteractable>(); } if (currentInteractObject != null) { gui.SetInteractDisplayMessage(currentInteractObject.GetDescription()); } else { gui.SetInteractDisplayMessage(null); } lastInteractObject = hit.collider.gameObject; enableDisplay = true; } else { if (hit.collider.attachedRigidbody != null) { Rigidbody otherRB = hit.collider.attachedRigidbody; if ((!otherRB.isKinematic) && otherRB.mass <= maxPickupObjectMass) { if (!TagManager.CompareTag("NonGrabbable", hit.collider.gameObject)) { gui.SetInteractDisplayMessage("Pick up"); enableDisplay = true; } } } } } if (enableDisplay) { gui.EnableInteractDisplay(); } else { gui.DisableInteractDisplay(); } } else { gui.DisableInteractDisplay(); } interactTestTimer -= interactTestInterval; } }
void FixedUpdate() { PlayerMovementNEW.MoveInput moveInput; if (!paused) { Vector3 dirInput = GetDirectionalInput(); moveInput = new PlayerMovementNEW.MoveInput(dirInput, keyJump.GetKey(), isCrouching, isSprinting); } else { moveInput = new PlayerMovementNEW.MoveInput(Vector3.zero, false, isCrouching, isSprinting); } view.ExecuteFixedUpdate(); movement.ExecuteFixedUpdate(moveInput); gui.SetInteractDisplayMessage(movement.DebugInfo); if (view.isHoldingOntoSomething) { view.ManageGrabbedObject(); } }