GUI approach

I’ve put together a fairly basic GUI using Unity’s built-in system, but am having difficult when it comes to how to (conceptually) handle retina/high-DPI displays. For the most part my UI is incredibly simple. I’m using a combination of GUI.Label’s and GUI.DrawTexture calls (with the occasional GUI.Button thrown in for good measure).

But what’s the best way to handle defining Rects that need to scale correctly for retina displays? Do I apply a matrix transform, or manually scale up my values? I’ve looked around for existing solutions and there are a dizzying number. I feel as though what I’m trying to achieve could be fairly simply handled with some custom code (I have no need for extensive layout systems or logic).

How about NGUI? I find that it helps a lot. I do not have much experience with Unity’s GUI, however.

You could use GUIUtility.ScaleAroundPivot on your top-most container.

I’m using it in combination with GUIUtility.RotateAroundPivot - you could preview all the possible combinations in this demo.

Cheers!