Thanks for posting this package. The code is very clear and well laid out.
For a larger team, where multiple developers/designers would be working on each UI screen, would you recommend splitting the "Window" objects (eg "Window - Main Menu" etc) into prefabs, or into seperate scenes, or something else? The entire UI being in one scene would cause problems for a larger team.
I played around with creating the Windows as prefabs, and it works ok, except the "window" property of the UIWindowButton script cannot be set in the prefab data, only in the instance data. This makes sense, and I guess a different approach would have to be taken, maybe to create a mapping of enums to "Window" prefab instances.
Thanks again!