所有的UI都继承自class UIBase,可以把UI做成预设体,同个场景下,读取预设体时,将子UI对象都保存在类似Dictionary<UIType, UIBase>这样的结构中,这样的一个好处就是可以很方便的用一个for循环去控制同个场景下的UI显示与隐藏,比如(C#代码):

void ShowUI(UIType type)
{
	foreach (KeyValuePair ui in uiDic)
	{
		if (type == ui.key)
		{
			uiDic.Show();
		}
		else
		{
			uiDic.Hide();
		}
	}
}

如果是不同场景的话,那么就不能用同一个结构去保存所有的UI,因为进入另一个场景,要保存上一个场景的UI数据,用DontDestroyLoad感觉很不好(具体请搜索相关原因)

PS:现在能想到的就是分场景去存储UI对象,如果不分的话,会很麻烦。

上述如果有错误或者有更好的思路,麻烦指出交流,不胜感激。

End 转载请注明出处

04-28 15:34