/// <summary>
/// Update Dynamic Fonts
/// </summary>
public static bool hasRequestFont = false;
void UpdateDynamicFonts()
{
if (hasRequestFont)
return;
hasRequestFont = true;
// find all dynamic fonts
var dynamicFonts
= new Dictionary
<UIFont,
System.Text.StringBuilder>();
// find all labels
UILabel[] labels = NGUITools.FindActive<UILabel>();
Camera[] cameras = NGUITools.FindActive<Camera>();
for (int i = 0, imax = labels.Length; i < imax; ++i)
{
UILabel lbl = labels[i];
UIFont fnt = lbl.font;
if (!string.IsNullOrEmpty(lbl.text))
{
if (fnt.isValid && fnt.isDynamic)
{
if (!dynamicFonts.ContainsKey(fnt))
{
dynamicFonts
.Add(fnt,
new System.Text.StringBuilder()); }
dynamicFonts[fnt].Append(lbl.text);
lbl.MarkAsChanged();
}
}
}
// request fonts
foreach (var pair in dynamicFonts)
{
UIFont fnt = pair.Key;
string text = pair.Value.ToString();
fnt.dynamicFont.RequestCharactersInTexture(text, fnt.dynamicFontSize, fnt.dynamicFontStyle);
}
}