public void OpenWindow(string uiName, params object[] args) { VUIBase uiBase = null; if (!UIWindows.TryGetValue(uiName, out uiBase)) { uiBase = LoadWindow(uiName, args); return; } OnOpen(uiBase, args); }
VUIBase LoadWindow(string uiName, params object[] args) { GameObject uiObj = Instantiate(Resources.Load <GameObject>("UI/" + uiName)) as GameObject; uiObj.SetActive(false); //uiObj.transform.parent = AnchorSide[UISettings[uiName].Side]; uiObj.transform.parent = UIRootCamera; uiObj.transform.localPosition = new Vector3(UISettings[uiName].OffsetX, UISettings[uiName].OffsetY, UISettings[uiName].OffsetZ); uiObj.transform.localScale = Vector3.one; VUIBase uiBase = (VUIBase)uiObj.AddComponent(Type.GetType("VUI" + uiName)); uiBase.OnInit(); uiBase.UIName = uiName; UIWindows.Add(uiName, uiBase); OnOpen(uiBase, args); return(uiBase); }
void OnOpen(VUIBase uiBase, params object[] args) { uiBase.gameObject.SetActive(true); uiBase.OnOpen(args); }