Storing duplicated gameobject in array

hello guys! i am currently doing a piano game kinda similar to taptap.
When i click play, the green cylinder object will move forward, toward the piano key. and when user press on the key, the cylinder will then be destroyed.
I was thinking if i could store the 3green cylinder into an gameobject array, so when the gameobject is called, it will move forward. However instead of sending out the actual cylinder, can send out a duplicate one instead of the real one?
Or is there other way i could do this?
Thanks in advanced!

You could create prefabs to store your game objects, stored in your project, then instantiate them into your game. This should help you understand Unity - Scripting API: Object.Instantiate
or video tutorial https://unity3d.com/learn/tutorials/modules/beginner/scripting/instantiate