Unity在使用NGUI插件的时候,使用动态字体,当我们执行切换应用程序,保存场景时,场景里面的字体一下子全部消失了。这让我们很头疼。我们不得不重新加载场景,等操作让消失的label重新显示出来。我研究了UILabel老半天,也没有找到根治的办法。但我发现,每个label只要隐藏从新激活,这个label就可以显示出来了。这样我就有了一个临时的解决方案。
1:获取场景里面所有的label。
2:获取当前label当前的激活状态
3:设置该label状态的反方向值
4:重新设置label为改状态。
具体代码如下:
[MenuItem("LazerSelect/UI/LabelRefresh %q")]
private static void LabelShowRefresh()
{
List<UILabel> labels = NGUIEditorTools.FindAll<UILabel>();
foreach(UILabel label in labels)
{
bool active = label.gameObject.activeSelf;
label.gameObject.SetActive(!active);
label.gameObject.SetActive(active);
}
}
这样,以后再按快捷键 ctrl+q就可以将消失的label,从新激活。从而大大减少了label消失而带来操作的麻烦。