private void DropMoveableObject()
    {
        if (CurrentlySelectableObject == null)
        {
            return;
        }

        if (!IsOverUIElement() && !CurrentlySelectableObject.IsCollision)
        {
            Debug.Log("SuccessfulPlacement");
            CurrentlySelectableObject.SuccessfulPlacement();
        }
        else if (CurrentlySelectableObject.IsFirstPlacement)
        {
            Debug.LogError("ReturnObjectToPool");
            ObjectPoolManager.Instance.ReturnObjectToPool(CurrentlySelectableObject.gameObject);
        }
        else
        {
            Debug.LogWarning("ReplaceObject");
            CurrentlySelectableObject.ReplaceObject();
        }

        // Reset values after we do not have control over an object
        IsValidPlacement = SelectableRadius.ShowDoWeHaveValidPositionInColor(true);

        // SelectableRadius.Show();
        MoveableObjectGrabbed = false;
    }
 public void SetSelectableRadiusColor()
 {
     if (CurrentlySelectableObject != null)
     {
         IsValidPlacement = SelectableRadius.ShowDoWeHaveValidPositionInColor(IsOverUIElement() || CurrentlySelectableObject.IsCollision ? false : true);
     }
 }
    private void FindAndGrabMoveableObject()
    {
        if (Physics.Raycast(mouseRay, out mouseHit, Mathf.Infinity, whatIsMoveableObject))
        {
            var newSelectableObject = mouseHit.transform.GetComponent <SelectableObject>();

            if (newSelectableObject != null)
            {
                CurrentlySelectableObject = newSelectableObject;
                CurrentlySelectableObject.BeingSelected();
                SelectableRadius.ShowViewRadius(CurrentlySelectableObject.transform, CurrentlySelectableObject.SelectableRadius);
            }
        }
        else
        {
            CurrentlySelectableObject = null;
            SelectableRadius.DisableViewRadius();
        }
    }