Is there a place to intialise OnGUI (eg. GUIOnStart())

Is there anywhere to initialise fields and values for OnGui operations, like start() for gameObjects?

I want to do some standard calculations for UI scaling and store them in values instead of calculating them every GUI draw. Or is that frowned upon in case of resizes (something I don’t care about as I’m targetin mobile), and you just recalculate every frame?

You can initialize OnGUI variables anywhere, including Start and Awake, because they’re not different from any other variables.

If you don’t want to calculate all values every frame, just put the calculations in a function that you call whenever the values need updating. I often use a CalculateRects() in my code which is called whenever the screen resolution changes.