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.