TypePopUpWindow waitToShowWindow = TypePopUpWindow.NONE; // █ окно которое ожидается для отображения (возможно ожидается ответ от сервера) public static void requestContent(TypePopUpWindow type) // █ запросить контент для окна (обычно приходит контент сразу для всех окон) контент сохраняется, потому окна при созданиях перед отправлением этого запроса туда заглядывают(). { lastTimeRequest = Time.time; MarketEvent.requestMarketItems(); //Debug.Log("█ запрос на получение данных, и ожидается открытие окна:" + type); getWinController.waitToShowWindow = type; }
string getStringByType(TypePopUpWindow type) { switch (type) { case TypePopUpWindow.CRYSTALS_BUY: return("crystal"); } //Debug.Log("Error![getStringByType] undifine type:" + type); return(""); }
PopUpWindow createAndShowWindow(TypePopUpWindow type) // █ создать и после показать окно { waitToShowWindow = TypePopUpWindow.NONE; //Debug.Log("[createAndShowWindow] type:" + type); GameObject wndGO = null; if (type == TypePopUpWindow.SETTINGS) { var obj = Resources.Load("prefabs/Settings"); wndGO = GameObject.Instantiate(obj) as GameObject; } else { wndGO = GameObject.Instantiate(getResources().popUpWndPrefab); } wndGO.name = type.ToString(); //Debug.Log(wndGO.name); //System.Type typeWnd = < PopUpWindow >; PopUpWindow wnd = wndGO.GetComponent <PopUpWindow>(); float speed = wnd.speedMove; var hPos = wnd.hidePosition; var sPos = wnd.showPosition; if (type != TypePopUpWindow.SETTINGS) { GameObject.DestroyImmediate(wnd); } switch (type) { case TypePopUpWindow.GOLD_EXCHANGE: wnd = wndGO.AddComponent <BuyGoldWnd>(); break; case TypePopUpWindow.CRYSTALS_BUY: wnd = wndGO.AddComponent <BuyCrystalsWnd>(); break; case TypePopUpWindow.SETTINGS: { } break; default: wnd = wndGO.AddComponent <PopUpWindow>(); break; } wnd.speedMove = speed; wnd.hidePosition = hPos; wnd.showPosition = sPos; if (type != TypePopUpWindow.SETTINGS) { wnd.content = wnd.createContent(); } popUpWindows[type] = wnd; float txtH = wndGO.GetComponent <SpriteRenderer>().sprite.texture.height * 0.5f; wnd.hidePosition = new Vector2(0.0f, -(txtH + Screen.height) * 0.01f); wnd.transform.position = new Vector3(0.0f, wnd.hidePosition.y, 0.0f); wnd.show(); return(wnd); }
public static void hideCurrentWindow() { if (showingWindow != TypePopUpWindow.NONE) { if (popUpWindows.ContainsKey(showingWindow)) { popUpWindows[showingWindow].hide(); showingWindow = TypePopUpWindow.NONE; } } //MAIN.getMain.actualInputLayer = MAIN.defaultLayer; ScenesController.updateGetActualInputLayer(); }
static TypePopUpWindow showingWindow = TypePopUpWindow.NONE; // отображаемое окно public static bool showPopUpWindow(TypePopUpWindow type, bool hideIfShowing = false) // показать окно. Последний параметр, (не актуально) спрячет окно если оно уже показывалось { var controller = WindowController.getWinController; if (!hideIfShowing || controller.getShowingWindow() != type) { return(controller._showPopUpWindow(type)); } else { WindowController.hideCurrentWindow(); } return(false); }
void OnMarketEventRespound() // получения ответа от сервера { //Debug.Log("█ данные получил"); MarketEvent marketEvent = GameObject.Find("Network").GetComponent <MarketEvent>(); //marketEvent.response; //Debug.Log("[OnReady] in WindowController" + waitToShowWindow); var name = getStringByType(waitToShowWindow); crystalItems = main.purchase.getMarketItesByName(name); goldFromCrystalExchange = getMarketEvent().response.data.Exchange; sortRubinItems(); sortGoldItems(); if (waitToShowWindow != TypePopUpWindow.NONE) { showingWindow = waitToShowWindow; Debug.Log("█ showingWindow == " + showingWindow); createAndShowWindow(showingWindow); //waitToShowWindow = TypePopUpWindow.NONE; } }
public bool _showPopUpWindow(TypePopUpWindow type) // █ показать окно, если его нет, создать, если данных нет, запросить { hideCurrentWindow(); //Debug.Log("[_showPopUpWindow]"); //main.actualInputLayer = MAIN.popUpWindowLayer; PopUpWindow wnd = null; if (popUpWindows.ContainsKey(type)) { wnd = popUpWindows[type]; showingWindow = type; wnd.show(); } else { bool isPurchasingWind = type == TypePopUpWindow.CRYSTALS_BUY || type == TypePopUpWindow.GOLD_EXCHANGE; var me = getMarketEvent(); if (((me.response == null || me.response.data.Exchange.Length == 0 || me.response.data.Purchase.Length == 0)) && isPurchasingWind) { requestContent(type); return(false); } else { if (!isPurchasingWind || crystalItems != null && goldFromCrystalExchange != null) { showingWindow = type; wnd = createAndShowWindow(type); } else { return(false); } } } //Debug.Log("█3 showingWindow:" + showingWindow); return(wnd != null); }