Freezing GameObject in place using collider trigger?

I have a script where I want to capture a fish but while having it wait a certain amount of seconds the prefab keeps moving using another script called way points. how can I stop the prefab in place? I tried
fishdist = 0; in Update but that doesn’t seem to work. Thank you so much :cry:

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

public class Casting : MonoBehaviour
{

public ParticleSystem Splash;
public float offsetSplash;

public GameObject Float;
public GameObject Item;
public GameObject Enemy;

public Transform target;
public Transform targetItem;
//public Transform targetEnemy;

public int scoreValue = 10;
int waterMask;

public float maxCastDist = 1000f;
public float fishDist = 1f;
//public float itemDist = 1f;
//public float enemyDist = 1f;

public bool hitObject;

public string achievmentName;

void Awake ()
{
	
	waterMask = LayerMask.GetMask ("Water"); // will only cast in water
}

void Update ()
{
	//if (Input.GetMouseButtonDown (0)) {
	if (EventSystem.current.IsPointerOverGameObject ()) {
		return;

	} else {

		if (Input.GetMouseButtonDown (0)) {

			RaycastHit hit;

			Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);

			Vector3 splashOffset = Input.mousePosition;

			splashOffset.y = Input.mousePosition.y + offsetSplash;

			Ray offset = Camera.main.ScreenPointToRay (splashOffset);

			if (Physics.Raycast (offset, out hit, maxCastDist, waterMask)) {
				if (hit.collider != null) {
					if (Splash != null) {
						ParticleSystem splash = Instantiate (Splash, hit.point, Quaternion.identity) as ParticleSystem;
						splash.Play ();
					}
				}
			}

			if (Physics.Raycast (ray, out hit, maxCastDist, waterMask))
			if (hit.collider != null) {

				float dist = Vector3.Distance (hit.point, target.position);
				Debug.Log (dist);

				Instantiate (Float, hit.point, Quaternion.identity);
				if (dist < fishDist) {

					// stop fish in place 
					//fishdist = 0;
					StartCoroutine (fishWaiter ()); // delay random when fish will be "retrieved"
				} 

			}
		}
	}
}



IEnumerator fishWaiter ()
{

	int waitFishtime = Random.Range (1, 10);
	Debug.Log ("Timer Started");
	yield return new WaitForSeconds (waitFishtime);
	print ("I waited" + waitFishtime + "Sec");

	Destroy (GameObject.FindWithTag ("Fish"));


	print ("You Caught The Fish!");
	ScoreManager.score += scoreValue;
	AchievementManager.Instance.EarnAchievment (achievmentName);
}

}

Set a flag like “canMove” to false in your “way point” script. Only use/move the fish in your way point script if “canMove” is true.