/// <summary>
    /// Checks is can drag any item or if can show UI
    /// </summary>
    /// <param name="ray"></param>
    private void CheckIfCanDrag(Ray ray)
    {
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit, maxRayDistance, draggableLayerMask))
        {
            draggingObject = hit.transform.GetComponent <IDraggable>();
            if (draggingObject != null && draggingObject.CanDrag())
            {
                isMouseDragging = true;
                draggingObject.OnDragEvent(isMouseDragging);
                draggingTransform = hit.transform;
                originalPosition  = draggingTransform.position;
                positionOfScreen  = renderCamera.WorldToScreenPoint(originalPosition);
                offsetValue       = originalPosition - renderCamera.ScreenToWorldPoint(
                    new Vector3(Input.mousePosition.x, Input.mousePosition.y, positionOfScreen.z));
            }
        }
        if (Physics.Raycast(ray, out hit, maxRayDistance, inventoryLayerMask) && !isMouseDragging)
        {
            bagUI = hit.transform.GetComponent <IInventoryUICheckable>();
            if (bagUI != null)
            {
                bagUI.ShowUI();
                isCheckingUI = true;
            }
        }
    }
    private void ReleaseBagUI()
    {
        if (isCheckingUI)
        {
            var pointer = new PointerEventData(EventSystem.current);
            pointer.position = Input.mousePosition;
            var raycastResults = new List <RaycastResult>();
            EventSystem.current.RaycastAll(pointer, raycastResults);

            foreach (RaycastResult result in raycastResults)
            {
                // Apply Custom Logic Here
                var foo = result.gameObject.GetComponent <InventoryCellController>();
                if (foo != null)
                {
                    foo.ThrowItem();
                }
            }
            if (bagUI != null)
            {
                bagUI.HideUI();
            }
            isCheckingUI = false;
            bagUI        = null;
        }
    }