Parenting Instantiated objects on Collision

I’m looking for help on how to instantiate a gameobject at an exact location on a parent object. For instance, right now, after a collision, my Instantiated Object spawns as a child of the object I want it too, but at a different location everytime. Depending on where the collision happens, the new object can spawn more towards the head, the abdomen, or the feet of my target parent object.

My code is like this:
public GameObject thing;

void OnCollisionEnter2D(Collision2D coll) {
	if (coll.gameObject.tag == "Player")
		thing = (GameObject)Instantiate (thing, transform.position + new Vector3(0f,0f,0f), Quaternion.identity);
		thing.transform.parent = GameObject.FindGameObjectWithTag("Player").transform;
	
	
	Destroy (gameObject);
	Debug.LogError ("Hit gunpickup");
}

}

Insert at line 5 (after the parenting):

thing.transform.localPosition = Vector3.zero;
thing.transform.localRotation = Quaternion.identity; // May not be needed

Yes that works, thank you, very much appreciated. It does work without the extra Quaternion.identity.

Heres the full code for anyone else having trouble with this:

public GameObject thing;

void OnCollisionEnter2D(Collision2D coll) {
	if (coll.gameObject.tag == "Player")
		thing = (GameObject)Instantiate (thing, transform.position  + new Vector3(5f,0f,0f), Quaternion.identity);
		thing.transform.parent = GameObject.FindGameObjectWithTag("playercenter").transform;
		thing.transform.localPosition = Vector3.zero;
		//thing.transform.localRotation = Quaternion.identity; // May not be needed
	
	
	Destroy (gameObject);
	Debug.LogError ("Hit gunpickup");
}

}