//显示大关卡信息 public void ShowBigLevelState(bool unLocked, int unLockedLevelNum, int totalNum, Transform theBigLevelButtonTrans, int bigLevelID) { if (unLocked)//解锁状态 { theBigLevelButtonTrans.Find("Img_Lock").gameObject.SetActive(false); theBigLevelButtonTrans.Find("Img_Page").gameObject.SetActive(true); theBigLevelButtonTrans.Find("Img_Page").Find("Tex_Page").GetComponent <Text>().text = unLockedLevelNum.ToString() + "/" + totalNum.ToString(); Button theBigLevelButtonCom = theBigLevelButtonTrans.GetComponent <Button>(); theBigLevelButtonCom.interactable = true; if (!hasRigisterEvent) { theBigLevelButtonCom.onClick.AddListener(() => { mUIFacade.PlayButtonAudioClip(); //离开大关卡页面 mUIFacade.currentScenePanelDict[StringManager.GameNormalBigLevelPanel].ExitPanel(); //进入小关卡 GameNormalLevelPanel gameNormalLevelPanel = mUIFacade.currentScenePanelDict[StringManager.GameNormalLevelPanel] as GameNormalLevelPanel; gameNormalLevelPanel.ToThisPanel(bigLevelID); //设置所在页面 GameNormalOptionPanel gameNormalOptionPanel = mUIFacade.currentScenePanelDict[StringManager.GameNormalOptionPanel] as GameNormalOptionPanel; gameNormalOptionPanel.isInBigLevelPanel = false; }); } } else//未解锁 { theBigLevelButtonTrans.Find("Img_Lock").gameObject.SetActive(true); theBigLevelButtonTrans.Find("Img_Page").gameObject.SetActive(false); theBigLevelButtonTrans.GetComponent <Button>().interactable = false; } }
//封装一个方法来更新大关卡的信息 public void ShowBigLevelState(int bigLevelID, int totalNum, int unlockedLevelNum, bool unLocked, Transform theBigLevelButtonTrans) { if (unLocked)//已解锁 { theBigLevelButtonTrans.Find("Img_Page").gameObject.SetActive(true); theBigLevelButtonTrans.Find("Img_Lock").gameObject.SetActive(false); //Debug.Log(theBigLevelButtonTrans); //Debug.Log(theBigLevelButtonTrans.Find("Img_Page").Find("Txt_Page")); theBigLevelButtonTrans.Find("Img_Page").Find("Txt_Page").GetComponent <Text>().text = unlockedLevelNum.ToString() + "/" + totalNum.ToString(); //Debug.Log("theBigLevel"+ theBigLevelButtonTrans.ToString()+"/"+ theBigLevelButtonTrans.Find("Img_Page") +"/"+ theBigLevelButtonTrans.Find("Img_Page") .Find("Txt_Page")+ theBigLevelButtonTrans.Find("Img_Page").Find("Txt_Page").GetComponent<Text>().text.ToString()+"--"+unlockedLevelNum.ToString() + "/" + totalNum.ToString()); Button theBigLevelButtonCom = theBigLevelButtonTrans.GetComponent <Button>(); theBigLevelButtonCom.interactable = true; //添加监听器这个动作是会重复进行的,多次进行以后可能导致程序崩溃,所以加一个bool值判断,当已经注册以后,不再执行。 if (!hasRegisterEvent) { theBigLevelButtonCom.onClick.AddListener(() => {//离开大关卡,进入小关卡 mUIFacade.PlayButtonAduioClip(); mUIFacade.currentScenePanelDict[StringManager.GameNormalBigLevelPanel].ExitPanel(); GameNormalLevelPanel gameNormalLevelPanel = mUIFacade.currentScenePanelDict[StringManager.GameNormalLevelPanel] as GameNormalLevelPanel; gameNormalLevelPanel.ToThisPanel(bigLevelID); GameNormalOptionPanel gameNormalOptionPanel = mUIFacade.currentScenePanelDict[StringManager.GameNormalOptionPanel] as GameNormalOptionPanel; gameNormalOptionPanel.isInBigLevel = false;//不在大关卡的panel里面了 }); } } else//未解锁 { theBigLevelButtonTrans.Find("Img_Page").gameObject.SetActive(false);//书签隐藏 theBigLevelButtonTrans.Find("Img_Lock").gameObject.SetActive(true); //锁显示 theBigLevelButtonTrans.GetComponent <Button>().interactable = false; //button按钮设置为不可交互 } }
// 更新显示大关卡数据UI private void ShowBigLevelUI(bool unLocked, int lockedLevelNum, int totalLevelNum, Transform bigLevel, int bigLevelID) { Button btnBigLevel = bigLevel.GetComponent <Button>(); if (!unLocked) // 未解锁状态 { bigLevel.Find("Img_Lock").gameObject.SetActive(true); bigLevel.Find("Img_PageCount").gameObject.SetActive(false); btnBigLevel.interactable = false; } else // 解锁状态 { bigLevel.Find("Img_Lock").gameObject.SetActive(false); bigLevel.Find("Img_PageCount").gameObject.SetActive(true); bigLevel.Find("Img_PageCount/Txt_PageCount").GetComponent <Text>().text = lockedLevelNum + "/" + totalLevelNum; btnBigLevel.interactable = true; } if (hasRigisterEvent) { return; // 如果已经注册过按钮监听事件,则不重复注册 } btnBigLevel.onClick.AddListener(() => { mUIFacade.PlayButtonAudioEffect(); mUIFacade.currentScenePanelDict[StringManager.P_GameNormalBigLevelPanel].ExitPanel(); // 离开大关卡选择页面 GameNormalLevelPanel gameNormalLevelPanel = mUIFacade.currentScenePanelDict[StringManager.P_GameNormalLevelPanel] as GameNormalLevelPanel; gameNormalLevelPanel.EnterPanelFromBigLevel(bigLevelID); // 进入小关卡选择页面 GameNormalOptionPanel gameNormalOptionPanel = mUIFacade.currentScenePanelDict[StringManager.P_GameNormalOptionPanel] as GameNormalOptionPanel; gameNormalOptionPanel.isInBigLevel = false; }); }
// 给关卡按钮注册事件 public void RigisterEvent(Button bigLevelBtn, int bigLevelID) { bigLevelBtn.onClick.AddListener(() => { // 离开大关卡 mUIFacade.currentScenePanels[StringManager.GameNormalBigLevelPanel].ExitPanel(); // 进入小关卡选择页面 GameNormalLevelPanel gameNormalLevelPanel = mUIFacade.currentScenePanels[StringManager.GameNormalLevelPanel] as GameNormalLevelPanel; gameNormalLevelPanel.ToThisPanel(bigLevelID); GameNormalOptionPanel gameNormalOptionPanel = mUIFacade.currentScenePanels[StringManager.GameNormalOptionPanel] as GameNormalOptionPanel; gameNormalOptionPanel.isInBigLevel = false; hasRigisterEvent = true; }); }
//注册按钮事件 public void RigisterEvent(Transform bigLevelButtonTrans, int bigLevelID) { Button bigLevelButton = bigLevelButtonTrans.GetComponent <Button>(); //获取大关卡Button组件 //if (!hasRigisterEvent) //确保只注册一次 //{ //注册大关卡按钮事件 bigLevelButton.onClick.AddListener(() => { Debug.Log("bigLevelID:" + bigLevelID + "is clicked"); uiFacade.PlayButtonAudioClip(); //点击到大关卡页面的时候播放音效 //离开大关卡页面 uiFacade.currentScenePanelDict[StringManager.GameNormalBigLevelPanel].ExitPanel(); //进入小关卡页面 //获取GameNormalLevelPanel GameNormalLevelPanel gameNormalLevelPanel = (GameNormalLevelPanel)uiFacade.currentScenePanelDict[StringManager.GameNormalLevelPanel]; gameNormalLevelPanel.ToThisPanel(bigLevelID); //设置小关卡面板的大关卡值 GameNormalOptionPanel gameNormalOptionPanel = (GameNormalOptionPanel)uiFacade.currentScenePanelDict[StringManager.GameNormalOptionPanel]; gameNormalOptionPanel.isInBigLevelPanel = false; //表示已经不在大关卡页面了 } ); //} }
public void ShowBigLevelState(bool unLocked, int unLockedLevelNum, int totalLevelNum, Transform theBigLevelTrans, int bigLevelID) { //解锁状态 if (unLocked) { Debug.Log("Enter UnLock State"); theBigLevelTrans.Find("Img_Lock").gameObject.SetActive(false); theBigLevelTrans.Find("Img_Page").gameObject.SetActive(true); theBigLevelTrans.Find("Img_Page").Find("Txt_Page").GetComponent <Text>().text = unLockedLevelNum + "/" + totalLevelNum; Button theBigLevelButton = theBigLevelTrans.GetComponent <Button>(); theBigLevelButton.interactable = true; if (!hasRigisterEvent) { theBigLevelButton.onClick.AddListener(() => { mUIFacade.PlayButtonAudioClip(); //离开大关卡页面 //mUIFacade.currentScenePanelDict[Constant.GameNormalBigLevelPanel].ExitPanel(); mUIFacade.GetCurScenePanel(Constant.GameNormalBigLevelPanel).ExitPanel(); //初始化并进入小关卡页面 //mUIFacade.currentScenePanelDict[Constant.GameNormalLevelPanel].EnterPanel(); GameNormalLevelPanel gameNormalLevelPanel = mUIFacade.GetCurScenePanel(Constant.GameNormalLevelPanel) as GameNormalLevelPanel; gameNormalLevelPanel.ToLevelPanel(bigLevelID); //设置所在页面 GameNormalOptionPanel gameNormalOptionPanel = mUIFacade.GetCurScenePanel(Constant.GameNormalOptionPanel) as GameNormalOptionPanel; gameNormalOptionPanel.isInBigLevel = false; }); } } else//未解锁状态 { theBigLevelTrans.Find("Img_Lock").gameObject.SetActive(true); theBigLevelTrans.Find("Img_Page").gameObject.SetActive(false); theBigLevelTrans.GetComponent <Button>().interactable = false; } }