how to have an object positioned relative to the screen(like a button)

Hello! How can I make this smoother

transform.rotation = cam.transform.rotation;

var ray : Ray = Camera.main.ScreenPointToRay (pos);
	var pos2 : Vector3 = ray.GetPoint(dist);
ob.transform.position = pos2;

I am basically trying to make 3d objects as buttons relatively placed about the screen like a gui button would be. This script works but it is jerky whenever the screen is moved/rotated. Is there a cleaner/more efficient way to do this? Thanks

Wouldn’t it be easier to simply use a GUITexture? Create your GUITexture, and you’ll see it (in game mode) right on the screen the way you want it. I made a little conversation system in this way. When I click on a character, I enable the dialogue GUITexture, and depending on who I’ve clicked on, load the resources for that character’s portrait. I use OnGUI to display buttons linked to my dialogue options. I launch specific lines of dialogue based on which buttons are clicked, and based on what state the conversation is in. If you’re still stuck, try watching this video. It made it super easy for me.