void Update()
    {
        MoveInput = new Vector2(
            Input.GetAxis("Horizontal"),
            Input.GetAxis("Vertical"));
        MoveInput.Normalize();

        Animator.SetBool("isMoving", Movement != Vector3.zero || IsRecovering);

        if (IsRecovering || IsInteracting)
        {
            CanMove = false;
        }
        if (InteractiveObject == null)
        {
            IsObjectAimed = false;
        }

        //Check there is an MoveInput
        if (CanMove)
        {
            //Jump
            if (!IsFormChanged && Input.GetButtonDown("Jump"))
            {
                Jump();
            }

            if (!IsFormChanged && IsObjectAimed && Input.GetKeyDown(KeyCode.P))
            {
                Debug.Log("Voy a minar");
                Rigidbody.isKinematic = true;
                CanMove       = false;
                IsInteracting = true;
            }

            if (Movement != Vector3.zero)
            {
                FaceMovement();
            }
            else
            {
                //Melting managemnet
                if (Input.GetKeyDown(KeyCode.K))
                {
                    if (!IsFormChanged && HasStick)
                    {
                        Melting();
                    }
                    else if (IsFormChanged && OnStick)
                    {
                        Recovery();
                    }
                    else if (IsFormChanged && HasStick)
                    {
                        StaticRecovery();
                    }
                }
            }
        }
        else
        {
            if (IsRecovering)
            {
                MoveToTarget(StickPoint, 0.01f, 3f);
            }
            else if (IsInteracting)
            {
                MoveToTarget(IntOre.GetInteractPoint(), 0.01f, 3f);
            }
        }
    }