You can use UI2DSprite components, which draw Unity sprites using NGUI's backend. As for the hierarchy controlling depth... the historical reason why NGUI didn't do this dates back to Unity 3 days when hierarchy wasn't adjustable via code in an expected fashion. Plus, hierarchy-based approach would be quite a bit slower if I was to add support for it to NGUI. I personally organize everything by panels: one panel per window. Inventory window gets its own panel, character stat sheet gets another panel, quest log gets another panel etc. I also use a window manager that automatically shows/hides windows one at a time (mostly the same one as Starlink UI kit's). In situations where I need to have multiple windows open, such as inventory / trade windows, having them each on their own panel means I can easily bring something to the front by clicking on it by adjusting its panel's depth, which is a single value. Seems easier than changing the hierarchy, code wise. The hierarchy approach looks like a good approach if you're designing everything in the editor, but it's less convenient when working with code.