Best way to do GUI related stuff?

So, I currently do not have enough money to purchase a higher GUI system such as NGUI ($95.00) or anything like it, so for now I’m stuck with the standard Unity GUI functions.

My problems are I’m having problems with getting the interfaces to stick to the screen correctly when the players are using different resolutions, I have looked this up and came across the GUI.Matrix function although I’ve always come up with errors while trying to use it. The GUI is a very important part of my game and needs to always be in the same spot for every player, it’s going to be an old style RTS type game and as everybody knows, most OLD-Style RTS have the Interface at the bottom which shows the map, allows them to choose what they want to do and shows the selected units and stats. I can’t do this correctly because while using Unity’s GUI system you have to set everything based on a SET Pixel, which is slightly disheartening, will I have to purchase a GUI System to be able to do what I want?

If not, what’s the most efficient way to do this and if you would be ever so kind to show me an example in C# if possible, if not Javascript will be fine as I should be able to convert it.

(I have zero experience with Matrix, except using it to spin a graphic once. If you use Matrix to solve your problem, you’ll end up with stretched GUI elements - which is fine as long as you’re aware of it and you build your graphics around that)

You can build the GUI ‘bottom-to-top’ using Screen.height as the screen’s bottom.

So, this rect would help build a label across screen-bottom:

rect = new Rect( 0, Screen.height-labelHeight, Screen.width, labelHeight );

If you want to anchor things to the left, that’s easy; just use the pixel index you want. Anchoring to the right means you need something like this:

rect = new Rect( Screen.width - labelWidth, y, labelWidth, height );