public void HideWindow(string windowName) { if (mFrontWindows.ContainsKey(windowName)) { BaseWindow window = mFrontWindows[windowName]; window.Close(); mFrontWindows.Remove(windowName); mBackgroundWindows.Add(windowName, window); } }
public void Update(float deltaTime) { for (int i = mWindowLoadInfoList.Count - 1; i >= 0; i--) { WindowLoadInfo loadInfo = mWindowLoadInfoList[i]; ResourceRequest request = loadInfo.mResourceRequest; if (request.isDone) { GameObject prefab = request.asset as GameObject; WindowInfo info = loadInfo.info; System.Type windowType = System.Type.GetType("LClient." + info.className); if (windowType != null) { BaseWindow window = (BaseWindow)System.Activator.CreateInstance(windowType); GameObject instance = GameObject.Instantiate(prefab); if (mCanvas.ContainsKey(info.layer)) { RectTransform rect = instance.GetComponent <RectTransform>(); rect.SetParent(mCanvas[info.layer], false); if (!loadInfo.isBackground) { window.Create(instance, true); mFrontWindows.Add(info.name, window); } else { window.Create(instance, false); mBackgroundWindows.Add(info.name, window); } WindowLoadFinishHandle callback = loadInfo.callback; if (callback != null) { callback.Invoke(window); } } } mWindowLoadInfoList.RemoveAt(i); } } }