When using Dynamic font feature of NGUI, I found some problems. First if you make two UIFont use the same font, the display of text may be corrupt. I notice the follow code at UIFont.cs:
dynamicFont.textureRebuildCallback = OnFontChanged;
dynamicFont.RequestCharactersInTexture(text, dynamicFontSize, dynamicFontStyle);
dynamicFont.textureRebuildCallback = null;
The UIFont listen rebuild callback of dynamic font only when request characters by itself, so it will be notified by others. It is why we get currupt text display. You can also make this bug if let 3D Text and UIFont use the same dynamic font.
The next bugs is that some characters may be display as blank, which is common thing at andorid phone with qualcomm chips. As you known, I need display chinese characters, so Dynamic font feature is valuable. But this bugs is too often at Xiaomi phone, I study the code of NGUI and unity manual. I notice that the current dynamic font implementation is slow, which repeat request characters. If I put more UILable at scence and change it content, the time lag is noticable. So, I modify code, if OnFontChanged is called, NOT need to request characters. Instead, we create UIFontManager request all UILabel text at LateUpdate.
After we do this, One TTF font never produce this bugs, but others fonts also, which make me confuse. I do such a test: alway show a 3D text gameobject with text of all UILable at scene, and I see that 3D text gameobject may lose some characters.
I come to a conclusion: this bug came from low performance of phone. Dynamic font need produce character image from ture type font file, which cost too much CPU. If the request characters cannot be done, Unity will return blank for some characters. For chinese characters and other asia characters, use dynamic font feature of unity at phone is unstable.
Maybe there are some tricks to work around this unity bugs: never request too many characters at one frame, your should let UIlabel only to draw its text after have requested its characters. This make code more complex!