所有的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 转载请注明出处