Sorry for the vague description. I will try to flesh out the setup a bit more. Basically, when the game start it reaches the main menu, which is a separate scene which is made almost solely with NGUI. When I say "NGUI object", I'm referring to an UIRoot object with a child UICamera and then several panels as children of the camera. When you then load a level in our game, we first instantiate our EffectsUI, which again is an UIRoot object with camera and panels, but since we want it to exist across level load, it is separate from the main menu UIRoot object. Once the gameplay level has been loaded we activate a new UIRoot object, which is our game's graphical interface.
I know this is not exactly how NGUI is probably designed to be used, but it would also get clunky and weird - at least in my opinion - to have both the main menu, load effects and in-game GUI in the same UIRoot. Since it had never caused problems earlier in the development process, I figured it wouldn't be a problem.
Now, when creating the credits, it was originally also done in a separate UIRoot object that we instantiated in the scenes where we needed it (there are two scenes in the game where this can happen), which does also work properly, but as said, after having run the credits, it causes this slow down when returning to the main menu. The credits' UIRoot object is deleted when loading the main menu, so it doesn't exist any more, once we get back to the main menu. At that point, it is once again only the main menu's UIRoot object that's active.
We do animate groups of widgets, which I know is expensive, but it is not a problem at any other point in our game. As said, no matter how much other stuff we load and various NGUI objects get displayed, this slow down doesn't happen. It only happens after the credits has been displayed. We don't use any effects on the labels that we fade in and out and there doesn't seem to be any impact on performance while the credits are running either. It's only after we return to the main menu that the issue is apparent.
As I also described in my previous post, I tried to merge the credits into our EffectsUI object that we use when fading and loading, such that we could avoid creating an extra UIRoot object just for the credits, but the problem is exactly the same. We could of course try to make sure not to animate any groups of widgets anywhere, but it just puzzles me that there is no problems at any other place in the game with these animations, except for after having shown the labels of our credits.
Again, I know it's probably a bit confusing and a very complex situation, where the source of the problem could be in a lot of places. That was why I just wanted to know what could cause this issue with the expensive call to FillDrawCall.