- Home /
Set GUI buttons and GUITextures in fixed place
Hi, folks!
The best way to set GUI buttons and GUITextures in fixed place relatively on screen resolution?
The problem is no matter how i try to do, but in different resolutions their place on screen changes a bit. Just cant and cant do it right... Tried setting pixelInsets in scripts using Screen.width and Screen.height, but it also didnt work as i wanted.
Help me out, plz!
Thanks in advance!
Do you need to scale the objects if the resolution gets higher? or do they stay same size and just bind to some margin or do you want to align them?
Answer by jahroy · Sep 16, 2011 at 05:08 PM
Our GUI is drawn without regard to aspect ratio. It scales based on window height alone. If I do say so myself, it looks great at any aspect ratio.
We base the entire scale on the height of the window. Every element of the GUI maintains its designed proportions and scales based on the height.
Answer by Owen-Reynolds · Sep 17, 2011 at 04:00 PM
The trick for me is to remember whether I want screen-percents or pixels, and using G.CalcSize(new GUIContent(word));
(where G is a GUIstyle) to get the pixel size of a font. A pain, but if you just have a font you want to measure, need to make a fake GUIStyle with it: GUIStyle G = new GUIStyle(); G.font = F;
For example, if you want right-side text with a 5% border, set the left-corner for Rect.x to Screen.width*0.95f - G.CalcSize(new GUIContent(word)).x
.