public GUIBaseDialogHandler Init() { try { GameObject obj = GameObjectUtils.LoadGameObject(gameObject.transform, PREFAB_PATH + prefabName); obj.name = prefabName; GUIBaseDialogHandler baseDialogHandler = obj.GetComponentInChildren <GUIBaseDialogHandler> (); Canvas canvas = obj.GetComponent <Canvas> (); canvas.overrideSorting = true; canvas.renderMode = RenderMode.ScreenSpaceCamera; canvas.worldCamera = GUIManager.Instance.uiCamera; baseDialogHandler.InstanceId = GameUtils.GenerateID(); baseDialogHandler.ShowStatus = DialogStatus.Ok; baseDialogHandler.DialogName = dialogName; baseDialogHandler.OnInit(); return(baseDialogHandler); } catch (Exception ex) { Debug.LogError("Error:" + ex.Message); } return(null); }
public GUIBaseDialogHandler GetTopDialog() { if (!useBlackBorder) { return(null); } GUIBaseDialogHandler rs = null; for (int i = 0; i < showedDialogList.Count; i++) { if (rs == null) { rs = showedDialogList [i]; } else { if (showedDialogList [i].canvas.sortingOrder > rs.canvas.sortingOrder) { rs = showedDialogList [i]; } } } return(rs); }
public void OnClickBlackBorder() { if (showedDialogList.Count <= 0) { return; } GUIBaseDialogHandler dl = showedDialogList [showedDialogList.Count - 1]; if (dl.CloseOnClickBlackBorder) { dl.HideSelf(); } }
public void DestroyDialog(GUIBaseDialogHandler baseDialogHandler) { if (baseDialogHandler == null) { return; } showedDialogList.Remove(baseDialogHandler); GUIManager.Instance.RemoveShowedDialog(baseDialogHandler); Destroy(baseDialogHandler.gameObject); GUIManager.Instance.CheckBlackBorder(); }
public void UpdateData(string instanceId, object param) { GUIBaseDialogHandler baseDialogHandler = null; for (int i = 0; i < showedDialogList.Count; i++) { if (string.Compare(instanceId, showedDialogList [i].InstanceId) == 0) { baseDialogHandler = showedDialogList [i]; } } if (baseDialogHandler == null) { Debug.Log("Can not find dialog " + dialogName + " with id: " + instanceId); return; } baseDialogHandler.OnUpdateData(param); }
public void Hide(object parameter, string instanseID, bool forceImediate = false) { GUIBaseDialogHandler baseDialogHandler = null; for (int i = 0; i < showedDialogList.Count; i++) { if (string.Compare(instanseID, showedDialogList [i].InstanceId) == 0) { baseDialogHandler = showedDialogList [i]; } } if (baseDialogHandler == null) { Debug.Log("Can not find dialog " + dialogName + " with id: " + instanseID); return; } Hide(parameter, baseDialogHandler, forceImediate); }
void Hide(object parameter, GUIBaseDialogHandler baseDialogHandler, bool forceImediate = false) { if (baseDialogHandler.ShowStatus == DialogStatus.Showing) { baseDialogHandler.OnEndShow(); } if (forceImediate) { GUIManager.InvokeEvent(dialogName, DialogEvent.BeginHide); baseDialogHandler.OnBeginHide(parameter); baseDialogHandler.ShowStatus = DialogStatus.Hiding; baseDialogHandler.OnEndHide(); GUIManager.InvokeEvent(dialogName, DialogEvent.Hidden); DestroyDialog(baseDialogHandler); } else { GUIManager.InvokeEvent(dialogName, DialogEvent.BeginHide); baseDialogHandler.OnBeginHide(parameter); baseDialogHandler.ShowStatus = DialogStatus.Hiding; baseDialogHandler.PlayHide(this); } }
public void TryShow(object parameter, bool closeOnClickBlackBorder = false) { if (dialogType == DialogType.Single) { if (showedDialogList.Count != 0) { if (showedDialogList[0].ShowStatus == DialogStatus.Ok || showedDialogList[0].ShowStatus == DialogStatus.Showed || showedDialogList [0].ShowStatus == DialogStatus.Showing) { showedDialogList [0].OnUpdateData(parameter); return; } else if (showedDialogList [0].ShowStatus == DialogStatus.Hiding) { showedDialogList [0].OnEndHide(); Destroy(showedDialogList [0].gameObject); GUIManager.Instance.RemoveShowedDialog(showedDialogList [0]); showedDialogList.RemoveAt(0); } } } GUIBaseDialogHandler baseDialogHandler = Init(); if (baseDialogHandler == null) { return; } baseDialogHandler.CloseOnClickBlackBorder = closeOnClickBlackBorder; showedDialogList.Add(baseDialogHandler); GUIManager.Instance.AddShowedDialog(baseDialogHandler); StartCoroutine(DoShow(baseDialogHandler, parameter)); }
private IEnumerator DoShow(GUIBaseDialogHandler baseDialogHandler, object parameter) { GUIManager.InvokeEvent(dialogName, DialogEvent.BeginShow); yield return(new WaitForSeconds(showDelay)); if (isSetupLocation && baseDialogHandler.guiControlLocation != null) { baseDialogHandler.guiControlLocation.transform.localPosition = position; } baseDialogHandler.OnBeginShow(parameter); baseDialogHandler.ShowStatus = DialogStatus.Showing; int newLayer = GUIManager.Instance.NewTopLayer(); baseDialogHandler.SetLayer(newLayer); if (useBlackBorder) { GUIManager.Instance.SetBlackBorder(baseDialogHandler.GetLayer()); } Vector3 temp = baseDialogHandler.guiControlLocation.transform.localPosition; baseDialogHandler.guiControlLocation.transform.localPosition = new Vector3(temp.x, temp.y, temp.z + newLayer * GUIManager.Instance.DeltaZ); if (rectCheckers != null && rectCheckers.Count > 0) { for (int i = 0; i < rectCheckers.Count; i++) { baseDialogHandler.AddRectChecker(rectCheckers[i]); } } baseDialogHandler.PlayShow(); }
public void RemoveShowedDialog(GUIBaseDialogHandler dl) { showedDialogList.Remove(dl); }
public void AddShowedDialog(GUIBaseDialogHandler dl) { showedDialogList.Add(dl); }
public virtual GameObject OnInit() { try { //Debug.LogError("Init Dialog" + name); Debug.Log("Load dialog " + dialogPrefab); GameObject obj = Util.LoadPreafab(GUI_PATH_PREFAB + dialogPrefab, gameObject); obj.name = dialogPrefab; if (obj.transform.Find(locationName) != null) { guiControlLocation = obj.transform.Find(locationName).gameObject; guiControlLocation.transform.localPosition = new Vector3(1000,0,0); } UIPanel panel = obj.GetComponent<UIPanel>(); if (panel != null) panel.depth = layer; UIPanel[] panels = obj.GetComponentsInChildren<UIPanel>(); for (int i = 0; i < panels.Length; i++) { panels[i].depth = layer; } uiBaseDialogHandler = gameObject.GetComponentInChildren<GUIBaseDialogHandler>(); return obj; } catch (Exception ex) { Debug.LogError("Error:" + ex.Message); } return null; }