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; } }