How to intantiate an object in front of a rotating object

So im trying to set up an interface where there are a bunch of buttons orbiting around the player, if the player selects one, they will all stop orbiting and more buttons will appear in front of that first button. The problem im having is since the first buttons are all orbiting around the player, i cant actually type in number positions since they are moving (and at one part of the room what would be the x axis is the z axis), which is why the code below is not working. does anybody know how i should be going about this?

Vector3 selectLocation = new Vector3 (transform.position.x - .3f, transform.position.y -           .625f, transform.position.z - 2f);
		Vector3 orbitLocation = new Vector3 (transform.position.x + .3f, transform.position.y - .625f, transform.position.z - 2f);

		Instantiate (selectButton, selectLocation, transform.rotation);
		Instantiate (orbitButton, orbitLocation, transform.rotation);

		selectButton.rotation = Quaternion.Euler (90, 0, 0);
		orbitButton.rotation = Quaternion.Euler (90, 0, 0);

Sounds like you could have the buttons that appear in front of the first button as a child of the first button and then set its position locally from its parent. Does that make sense?