Problem with custom bolts in Space Shooter

I am following the Space Shooter tutorial, and I got to the point where the ship can shoot bolts. (Works fine.) I thought it might be interesting to have bolts affected by the speed of the ship, which I thought should be easy enough. The problem is that a prefab cannot have a GameObject as a parameter (makes sense, in case the object is destroyed). So instead I created a new function in the Mover script used in bolt:

  public void AddSpeed() {    
    GetComponent<Rigidbody>().velocity = new Vector3(0.0f, 0.0f, 0.0f);
  }

This function stops bolts if successfully called, for example when I include it in Mover.Start().
Then, in PlayerController, I added a call to this function right after the bolt is instantiated:

GameObject clone = Instantiate(shot, shot_spawn.position, shot_spawn.rotation) as GameObject;
      clone.GetComponent<Mover>().AddSpeed(); 

This code compiles and executes without complain, but it is quite clear AddSpeed is not working (since bolts move normally). Because I don’t get error feedback I am unsure what is going on and how to fix it, so I would really thank any help.

After I learned about Debug.Log (further in the same tutorial) I was able to figure it out on my own.

The problem is that Start() function is NOT executed inmediately after instantiation, so my function AddSpeed (which is called correctly) was working as intended, but later Start() would undo any changes.

My solution was to pass the player’s speed to the script Mover and add this speed later in Start().