Hello Aren,
We've been attempting to optimize NGUI for our games and have gotten fairly smooth performance in our Unity->Flash games but we do still experience a stutter when we enable a UIPanel and it goes through it's first LateUpdate after enabling.
I've been playing with the source and noticed that on disabling a panel gameObject & its nested UIWidgets pretty much everything is discarded completely ( draw calls, cached transforms, panel references, etc. ). This effectively prevents us from preloading panels and then simply "hiding" them by disabling them and enabling them when we need them.
I've been able to hack that nothing is discarded and only the UIDrawCall mesh renderers are disabled when the UIPanel + children are disabled, but found that panels of which the contents changed while disabled took equal or even longer on their first LateUpdate than those who did not have my "optimization".
I've a few questions about this;
Am I simply doing this wrong; is there a proper way to do this?
Is this a possible feature in the future?
Thanks!
Leon
PS: Have done this in 2.6.3