https://unity3d.com/learn/tutorials/temas/multiplayer-networking/shooting-single-player I'm studying this tutorial on how to create a shooter. What has me confused is how these bullet objects are being tracked. What I mean is, we are instantiating a new bullet prefab to the bullet var GameObject, but if we fire two in a row, aren't we calling the fire function twice, which would destroy the bullet var GameObject? I could be misunderstanding this, since I'm still new to C#, but if the bullet var is being destroyed by the end of the fire function, what is keeping track of those bullets? I come from a C++ background, so I'm used to objects being destroyed when a function ends and having to manually delete objects when I need to reassign a pointer to a new object. I know that in C#, there is garbage collection that does this, but that doesn't really clear up my main question. Any help would be appreciated.