How to move the object?

How to make the object (red arrow) move to the green figure after pressing the mouse?

My problem is that when I press the left mouse button, the arrow moves only per one frame.

Any help?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CatControl : MonoBehaviour {
	public Rigidbody2D rb;

	Transform[] waypoints;

	float MoveSpeed = 2f;

	int waypointIndex = 0;

	void Start () {
		transform.position = waypoints [waypointIndex].transform.position;

		rb = GetComponent<Rigidbody2D>();

	void Update () {
		if (Input.GetMouseButtonDown (0)) {
		Move ();


	void Move()
		transform.position = Vector2.MoveTowards (transform.position,
			MoveSpeed * Time.deltaTime);

		if (transform.position == waypoints [waypointIndex].transform.position) {
			waypointIndex += 1;
		if (waypointIndex == waypoints.Length)
			waypointIndex = 0;


GetMouseButtonDown only checks whether the mouse button was just pressed; it does not, as you might expect, determine whether the mouse button is currently down. For persistent state, you’ll want to use GetMouseButton(0); which will always tell you if the mouse button is up, or down.

Think of it as a question of state; what is the state of the mouse button having been pressed down, versus, what is the state of the mouse button?