Instantiate always at the same position (0,0,0)

I am new to unity and NGUI.

when I instantiate a sprite, whatever I set the position ,it is always appearing at the (0,0,0). Always in the middle of the screen.

		void OnClick ()
					Instantiate (sprite, this.transform.localPosition, Quaternion.identity);

this is the code I attach to a NGUI UIButton.

Does this has anything to do with the NGUI? I use UI Root. It’s at (0,0,0) and when the sprite is instantiated, it is UI Root’s child.

With NGUI, you would prefer to use the NGUITools.AddChild() function to instantiate a new GameObject/prefab. So if you have a GameObject at any specific location (where you want to locate your sprite), do this:

NGUITools.AddChild(gameObjAtLocation, yourPrefab)