Help With Instantiating Prefab on Parent Object.

My Code works fine, the clone instantiates as a child of the player object, and afterwords moves around with it perfect. Depending on where the Object "Player, and object “thing”, collide is where I have a problem. The clone will instantiate at the top of the player if it hits the top, the bottom if it hits the bottom and so on. Is there any way for this new clone/prefab to instantiate at an exact location on the player object? I’m sorry if this is a newb question, I have searched and there doesn’t seem to be many references here.

My Code;
public GameObject thing;

// Use this for initialization
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 pickup”);
}
}

You can adjust the position of your newly instantiated thing where (0,0,0) would be the center of your player since you have parented it:

thing.transform.parent = GameObject.FindGameObjectWithTag("Player").transform;
thing.transform.localPosition = Vector3.zero;