How do we make it so you can't hold down to move?

A solution I found was making a bool that needs to be true whenever you move and every time you move start a co-routine setting that variable to false, then using WaitForSeconds() and put in the time you wan’t to have between inputs, and then set it to true. But Im not sure how to implement.

public class PlayerController : MonoBehaviour

{
public float moveSpeed = 5f;

public Transform movePoint;
public LayerMask whatStopsMovement;
public Animator anim;

    // Start is called before the first frame update
    void Start()
{
    movePoint.parent = null; // lets the Transform keep its local orientation rather than its global orientation
}

// Update is called once per frame
void Update()
{
    transform.position = Vector3.MoveTowards(transform.position, movePoint.position, moveSpeed * Time.deltaTime);

    if (Vector3.Distance(transform.position, movePoint.position) <= .05f)
    {

        if (Mathf.Abs(Input.GetAxisRaw("Horizontal")) == 1f)
        {
            if (!Physics2D.OverlapCircle(movePoint.position + new Vector3(Input.GetAxisRaw("Horizontal"), 0f, 0f), .2f, whatStopsMovement))
            {
                movePoint.position += new Vector3(Input.GetAxisRaw("Horizontal"), 0f, 0f);
            }
        } else
        if (Mathf.Abs(Input.GetAxisRaw("Vertical")) == 1f)
        {
            if (!Physics2D.OverlapCircle(movePoint.position + new Vector3(0f, Input.GetAxisRaw("Vertical"), 0f), .2f, whatStopsMovement))
            {
                movePoint.position += new Vector3(0f, Input.GetAxisRaw("Vertical"), 0f);
            }
        }

// Checks whether the player is moving
anim.SetBool("moving", false);
    } else
    {
        anim.SetBool("moving", true);
    }

}

public void OnTriggerEnter2D(Collider2D collider)
{
    Debug.Log("Trigger!");
}

}

Your idea should work. Modify your code like this:

bool isCanMove = true;

void Update()
{
    transform.position = Vector3.MoveTowards(transform.position, movePoint.position, moveSpeed * Time.deltaTime);

    if (Vector3.Distance(transform.position, movePoint.position) <= .05f)
    {
        if (Mathf.Abs(Input.GetAxisRaw("Horizontal")) == 1f && isCanMove)
        {
            if (!Physics2D.OverlapCircle(movePoint.position + new Vector3(Input.GetAxisRaw("Horizontal"), 0f, 0f), .2f, whatStopsMovement))
            {
                movePoint.position += new Vector3(Input.GetAxisRaw("Horizontal"), 0f, 0f);

                isCanMove = false;
                StartCoroutine(WaitBeforeMove());
            }
        }
        else
        if (Mathf.Abs(Input.GetAxisRaw("Vertical")) == 1f && isCanMove)
        {
            if (!Physics2D.OverlapCircle(movePoint.position + new Vector3(0f, Input.GetAxisRaw("Vertical"), 0f), .2f, whatStopsMovement))
            {
                movePoint.position += new Vector3(0f, Input.GetAxisRaw("Vertical"), 0f);

                isCanMove = false;
                StartCoroutine(WaitBeforeMove());
            }
        }
        // Checks whether the player is moving
        anim.SetBool("moving", false);
    }
    else
    {
        anim.SetBool("moving", true);
    }
}

IEnumerator WaitBeforeMove()
{
    yield return new WaitForSeconds(2.0f); // set your time
    isCanMove = true;
}

I added an IEnumerator, a boolean isCanMove and changed the Update() function (there is a coroutine starts and input limited).

Thanks, this helps a lot.

But I can still hold down the movement keys, I was hoping for the user to have to keep pressing and remove the option of holding down all together.

What are the … from if (… && supposed to be? Sorry.

Absolute legend.