Is there anyway to get Unity GUI to cache an image?

The overhead of rebuilding the GUI every frame (sometime multiple times per frame) is dragging down the performance of my app. Is there any way to have GUI areas cache an image once rendered and use that until the data changes or I call an GUI.Update() style function? Maybe a way to stop OnGUI Being called and using the GUI image that was built in a previous frame until something is flagged to redraw it?

Anyone had any luck implementing something like this?

Hi Dan T,

Are you trying to have some kind of static gui like a watermark or fancy static borders that mask the scene like binoculars or else? if that's the case then you could look into having a dedicated camera for the gui, render it into a texture and then compose the texture back in your main camera again.

but if you expect the gui to be responsive, you will not be able to skip or optimize much.

Have you tried EZGUI? it is more performant than the built in gui system, so you should definitly give it a serious look.

Hope it helps,