/// <summary> /// UIOpen 전용 함수 for UIBasePanel /// 해당UI가 없으면 생성하고, 있으면 Show해주도록 한다. /// </summary> /// <param name="uiPath">생성하려는 UI의 경로 (UI의 고유이름으로 등록됨) ["UI/" + uiPath]</param> static public GameObject Open(string uiPath, params object[] args) { instance.CheckUIRoot(); UIBasePanel panel = UIMgr.instance.FindInShowing(uiPath); if (null != panel) { // 숨겨져있다면 보여지도록 하고, 보여지는 상태에서 호출되면 재갱신이라고 보면됨. panel.Show(args); } else { GameObject newPanelGO = ResourceMgr.InstantiateUI(uiPath); if (null != newPanelGO) { panel = newPanelGO.GetComponent <UIBasePanel>(); if (null == panel) { Debug.LogError("UIBasePanel이 존재하지 않는 UI객체입니다."); } panel.gameObject.SetActive(true); panel.name = uiPath; panel.SetParams(args); } } if (panel is MissionPanel || panel is ResultRewardStarPanel) { instance.SetShadowLight(false); } //if (!uiPath.Contains("SystemPopup") && 0 == instance.SceneUIMgr.CurPopupId)//현재 팝업이 켜져있는것 //{ // UIBasePanel systemPanel = GetUIBasePanel("UIPopup/SystemPopup"); // if (systemPanel != null) // (systemPanel as SystemPopup).OnEnd(); // else // instance.SceneUIMgr.CurPopupId = -1; //} return(panel.gameObject); }