How Can I Create Buttons In World Space and NOT Screen Space

From my understanding unity can provide basic GUI functionality with its built in features, however I need to have buttons that aren’t flat against the screen and are actually attached to an object. I am creating a first person restaurant management game and the player can select a variety of functions from a screen attached to their counter. Much like when you go to burger king or McDonalds and the cashier takes your order on a touchscreen in front of them. How can I achieve this?

camera.WorldToScreenPoint would work up to a point. The targets world point will be translated to the screen point so it will be like it is attached to the target.

For true world text, use 3dText (TextMesh in the code, but 3DText from the drag down.) Put the text entirely in world-space. If you put one on the side of a cube, it will like it’s really written there. Only weird thing is it shows through everything (such a solid objects in front of it.) There are fixes here involving shaders (paste-in code.)

May as well use 3D models for the buttons.

For the check, raycasts seem the most versatile. The standard “what in the world is my mouse over?”

For comparison, using WorldToScreen and GUIText, as byerdelan suggests will have unchanging size and never rotated. Will look more like a computer is adding labels to a picture. Which might be easier to use and realistic enough.