private GridCoordinate GetCoordinatesByPosition(Vector3 position)
    {
        var combinedPosition = m_gridPositionProvider.GetCombinedPosition(position);
        var gridCoordinates  = combinedPosition.GetGridCoordinates();

        return(gridCoordinates);
    }
    private void SnapToValidPosition()
    {
        var position = transform.position;

        if (m_gridPositionProvider.IsPivotInRangeExist(position))
        {
            var combinedPosition = m_gridPositionProvider.GetCombinedPosition(position);
            var targetPosition   = combinedPosition.GetWorldPosition();
            transform.position = Vector3.Lerp(position, targetPosition, m_positionLerpAlpha);

            if (IsDroppedAndRichedToGridPosition(position, targetPosition))
            {
                Destroy(this);
            }
        }
    }