void OnPointerDrag()
    {
        Vector2 controllerPos = new Vector2(transform.position.x - pointerPosition.Value.x, pointerPosition.Value.y - transform.position.y) * DragElasticSensibility;

        distanceFromCenter = controllerPos.magnitude;

        diretion = EvaluateDirection(new Vector2(pointerPosition.Value.x - mainCh.transform.position.x, pointerPosition.Value.y - mainCh.transform.position.y));

        pointerDirection  = distanceFromCenter < DeadZoneRadius ? controllerPos : controllerPos.normalized * DeadZoneRadius;
        pointerDirection *= ForceMultiplier;

        switch (diretion)
        {
        case MovementDirections.Right:
        {
            pointerDirection = Vector2.right * pointerDirection.magnitude;
            mainCh.ChargeDash(pointerDirection, diretion);
        }
        break;

        case MovementDirections.Left:
        {
            pointerDirection = -Vector2.right * pointerDirection.magnitude;
            mainCh.ChargeDash(pointerDirection, diretion);
        }
        break;

        case MovementDirections.Jumping:
        {
            pointerDirection.y *= -1;
            mainCh.ChanrgeJump(pointerDirection, diretion);
        }
        break;

        default:
            break;
        }

        MoveControllerUI(pointerDirection);
    }