When you are running the activate function by pressing C you are always putting in "0" as the ID which is just the first object from the list. Instead you could replace 0 with a variable that you always change afterwards. Something like this: if( Input.GetKeyDown( KeyCode.C ) ) { pool.activate( i , new Vector3( 1.3f, 0f,…