I waited 2 months for official fix, but it not happend. So, there is dirty fix for dynamic fonts issue:
*) non-intrusive - no changes to official ngui code.
*) auto apply on scene save, no need to tire user for pressing some menu items, just press "save scene" (ctrl+s / cmd+s) if font issue happens.
How to use - just import attached package, thats all.
UPD: For non-authorized users (who cant get access to attachment):
using UnityEngine;
using UnityEditor;
namespace LeopotamGroup.UnityEditor.NguiExtensions {
sealed class NguiFixer : global::UnityEditor.AssetModificationProcessor {
static string[] OnWillSaveAssets (string[] paths) {
foreach (var path in paths) {
if (path == EditorApplication.currentScene) {
FixLabels ();
}
}
return paths;
}
static void FixLabels () {
foreach (var item in Object.FindObjectsOfType<UILabel> ()) {
item.MarkAsChanged ();
}
}
}
}