public void OpenUI(UIType type, params object[] data) { BaseUI ui = null; if (_uiPool.TryGetValue((int)type, out ui)) { ui.OnOpen(data); } else { UIRegisterData registerData = _registerData[(int)type]; if (registerData != null) { var go = ResourceManager.LoadRes <GameObject>(registerData.path); go = GameObject.Instantiate(go); ui = go.GetComponent <BaseUI>(); go.transform.SetParent(_canvas, false); if (ui == null) { Debug.LogError(string.Format("ui {0} not find baseui component", type)); } else { ui.SetRegisterData(registerData); ui.OnOpen(data); _uiPool.Add((int)type, ui); } } else { Debug.LogError("can not find uitype " + type); } } }
public void SetRegisterData(UIRegisterData data) { _registerData = data; }