// ------------- ProtectedMethod ------------- // ------------- Public Method ------------- public UIBase OpenWindow(UI_Kind kind, bool isActive) { // 관리중인 UI가 아닐경우 Load if (!dicUI.ContainsKey(kind)) { var inst = LoadUI(kind); if (inst != null) { dicUI.Add(kind, inst); var component = inst.GetComponent(typeof(UIBase)) as UIBase; component.Init(); } else { return(null); } } // 관리중인 UI var ui = dicUI[kind].GetComponent(typeof(UIBase)) as UIBase; // 켜는게 아니면 해당 UI 최상위 스크립트 반환 if (isActive) { ui.SortingOrder = stackUI.Count; // 최상단에 띄운다. ui.OpenUI(); VerifyOpen(ui); dicUI[kind].SetActive(true); } return(ui); }
public T GetWindowComponent <T>(UI_Kind kind) where T : class { if (dicUI.ContainsKey(kind)) { return(dicUI[kind].GetComponent(typeof(T)) as T); } else { return(null); } }
public GameObject GetWindow(UI_Kind kind) { if (dicUI.ContainsKey(kind)) { return(dicUI[kind]); } else { return(null); } }
// ------------- Private Method ------------- private GameObject LoadUI(UI_Kind kind) { GameObject loadUI = Common.ResourceLoad(string.Format($"{Common.UI_Path}{kind.ToString()}")); GameObject instUI = null; if (loadUI == null) { #if UNITY_EDITOR Debug.LogWarning(string.Format($"{kind.ToString()} UI 리소스를 찾을 수 없습니다.")); #endif } else { instUI = Instantiate(loadUI, this.MainCanvas); instUI.SetActive(false); } return(instUI); }