public void LookAt()
    {
        Vector3 rayOrigin = mainCam.ViewportToWorldPoint(new Vector3(.5f, .5f, 0));

        RaycastHit hit;

        if (Physics.Raycast(rayOrigin, mainCam.transform.forward, out hit, interactRange))
        {
            rayDirectionPoint = hit.point;
            gameObjectHit     = hit.transform.gameObject;

            Interactable interactable = gameObjectHit.GetComponent <Interactable>();

            if (interactable != null)
            {
                if (interactable.GetInteractable())
                {
                    if (!gameController.GetNPCTalking() && !gameController.GetObjectiveDialogue().activeInHierarchy)
                    {
                        itemInfoUI.SetActive(true);
                    }

                    if (gameController.GetObjectiveDialogue().activeInHierarchy)
                    {
                        itemInfoUI.SetActive(false);
                    }
                    interactable.Hover();

                    if (Input.GetMouseButtonDown(0) && !dialogueController.DialogueStarted() && !gameController.GetObjectiveDialogue().activeInHierarchy&& !narrativeDialogue.GetOutroNarrativeStart())
                    {
                        Item newItem = interactable.GetInteractedItem();

                        switch (newItem.GetItemType())
                        {
                        case ItemType.Stock:
                            inventory.AddItem(newItem);
                            break;

                        case ItemType.Door:
                            newItem.GetComponent <Door>().TryToOpen();
                            itemInfoUI.SetActive(false);
                            break;

                        case ItemType.NPC:
                            newItem.GetComponent <NPCDialogue>().Talk();
                            itemInfoUI.SetActive(false);
                            break;

                        case ItemType.Freezer:
                            newItem.GetComponent <Freezer>().Interact();
                            break;
                        }
                    }
                }
            }
            else
            {
                itemInfoUI.SetActive(false);
            }
        }
        else
        {
            rayDirectionPoint = rayOrigin + (mainCam.transform.forward * interactRange);
            gameObjectHit     = emptyGO;
            itemInfoUI.SetActive(false);
        }


        if (debugMode == true)
        {
            Debug.Log("HIT: " + gameObjectHit);
        }
    }