フォントテクスチャのサイズを超えてテキストを書き込もうとした時に、 テクスチャの再構築が走るため1フレーム壊れることがある。(3.9.4で確認) NGUIの不具合なのかUnityの不具合なのかは不明。
UILabel.cs 983 行目あたりのOnFontChanged 関数を修正します。
===== 対策コード
#define DYNAMIC_FONT_BUG_FIX if (mTempDrawcalls != null) { for (int i = 0, imax = mTempDrawcalls.Count; i < imax; ++i) { UIDrawCall dc = mTempDrawcalls[i]; #if DYNAMIC_FONT_BUG_FIX if (dc.panel != null) { dc.panel.FillDrawCall(dc); dc.panel.Refresh(); } #else if (dc.panel != null) dc.panel.FillDrawCall(dc); #endif
DYNAMIC_FONT_BUG_FIX 定義でくくった部分。パネルのリフレッシュを挟みました。
もし、上記修正で他の不具合が出てしまった場合は、壊れるUILabelを表示する親のUIPanelだけリフレッシュする様にすれば良いです。