Make OnMouseButtonDown do whole task and not just when pressed

Im trying to make my camera move fra a to b, when i press the mousebutton.
But it only moves a little everytime i press the mousebutton, so i have to click a lot of times before it gets to position b. But i want it so it goes all the way on one click.

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

public class tapToContinue : MonoBehaviour {

	public GameObject target;
	public float speed;

	public GameObject [] pages;

	// Use this for initialization
	void Start () {

		target = pages[1];

	// Update is called once per frame
	void Update () {

		if (Input.GetMouseButtonDown (0)) {
			CameraMove ();


		if (gameObject.transform.position == pages [1].transform.position) {
			target = pages [2];

		if (gameObject.transform.position == pages [2].transform.position) {
			target = pages [3];

		if (gameObject.transform.position == pages [3].transform.position) {
			target = pages [4];

	void CameraMove () {
		float step = speed * Time.deltaTime;
		transform.position = Vector3.MoveTowards (transform.position, target.transform.position, step);


Yes that’s right it only moves some pixels that it can get as an event in update() for one frame.

You can either use use GetMouseButton(0) only instead of GetMouseButtonDown(0) so it can run move funtion every time if you keep you mouse left click hold down .

if you want to perform this with one click like you said then pass a Boolean there that OnMouseButton down make something true and move camera when that Boolean is true if the camera moved to that particular position makes that Boolean false again .