今天测试出来的一个bug特别头疼,就是wp应用切换到别的应用再切换回来,会很大概率导致所有有UILabel的地方全部乱码或者干脆不显示。
使用NGUI版本是v3.0.2。unity3d版本4.6.4p2。手机lumia520。
如图:
用了很多办法,试过切换Localization.instance.currentLanguage再切换回来也一样,各种百度谷歌StackOverFlow也没找到答案。最后是这样解决的:
</pre><p><pre name="code" class="csharp">void OnApplicationPause(bool paused){
if (!paused) {
#if UNITY_WP8
//修复页面跳转后字体乱码
RefreshFont();
#endif
}
}
public static void RefreshFont(){
UIFont[] fonts = Resources.FindObjectsOfTypeAll(typeof(UIFont)) as UIFont[];
for (int i = 0, imax = fonts.Length; i < imax; ++i) {
UIFont font = fonts[i];
font.MarkAsDirty();
}
}
在应用失去焦点回来之后,刷新下UIFont字体集,问题得到解决。不过带来的缺点就是每次app得到焦点就刷新很浪费,目前只碰到WP平台有此问题,安卓和IOS都没有,所以加了个限定语句只在WP平台起作用。