public void ShowPanel(PanelType panelType, params object[] panelArgs) { if (panels.ContainsKey(panelType)) { Debug.Log("该面板已打开"); CurrentPanel = panels[panelType]; //CurrentPanel.gameObject.SetActive(false); CurrentPanel.OnResetArgs(panelArgs); } else { GameObject scene = new GameObject(panelType.ToString()); CurrentPanel = scene.AddComponent(Type.GetType(panelType.ToString())) as PanelBase; //CurrentPanel.gameObject.SetActive(false); CurrentPanel.OnInit(panelArgs); panels.Add(panelType, CurrentPanel); if (parentObj == null) { parentObj = UIRoot; } UnityHelper.AddUIChildNodeToParentNode(parentObj, scene.transform); SetLayer(CurrentPanel.gameObject, LayerType.Panel); } StartShowPanel(CurrentPanel, CurrentPanel.PanelShowStyle, true); }
private void ShowScene(SceneType sceneType, params object[] sceneArgs) { if (scenes.ContainsKey(sceneType)) { currentSceneBase = scenes[sceneType]; currentSceneBase.OnShowing(); currentSceneBase.OnResetArgs(sceneArgs); currentSceneBase.gameObject.SetActive(true); currentSceneBase.OnShowed(); } else { if (parentObj == null) { parentObj = UIRoot; } string name = sceneType.ToString(); GameObject scene = new GameObject(name); UnityHelper.AddUIChildNodeToParentNode(parentObj, scene.transform); SceneBase currentScene = scene.AddComponent(Type.GetType(name)) as SceneBase; currentSceneBase = currentScene; CurrentSceneType = sceneType; currentSceneBase.OnInit(sceneArgs); currentSceneBase.OnShowing(); SetLayer(currentSceneBase.gameObject, LayerType.Scene); currentSceneBase.OnShowed(); scenes.Add(sceneType, currentSceneBase); switchRecoders.Add(new SwitchRecorder(sceneType, sceneArgs)); } }
/// <summary> /// 初始化皮肤 /// </summary> protected virtual void OnInitSkin() { if (mainSkinPath != null) { _skin = LoadSrc(mainSkinPath); } else { _skin = new GameObject("Skin"); } UnityHelper.AddUIChildNodeToParentNode(this.transform, _skin.transform); }
GameObject CreateLayerGameObject(string name, LayerType type) { Transform obj = UnityHelper.FindTheChildNode(mParent.gameObject, name); if (obj != null) { return(obj.gameObject); } else { GameObject layer = new GameObject(name); UnityHelper.AddUIChildNodeToParentNode(mParent, layer.transform); layer.transform.SetAsLastSibling(); return(layer); } }