using DG.Tweening; using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; /// /// 专变终端屏显控制 /// public class Device_SpecializedVariableAcquisitionTerminal_ScreenControl : Device_Base { public DeviceTrigger upBtn; public DeviceTrigger downBtn; public DeviceTrigger leftBtn; public DeviceTrigger rightBtn; public DeviceTrigger okBtn; public DeviceTrigger backBtn; /// /// 重启画面 /// public Transform restart; /// /// 唤醒界面 /// public Transform wakeUp; /// /// 主菜单界面 /// public Transform mainMenu; /// /// 二级菜单 /// public List menu_2s; /// /// 面板 /// public SpecializedVariableAcquisitionTerminal_Screen_Enum type= SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页; public bool isGPRS故障; /// /// 当前选择的主菜单项 /// public int currentChose_MainMenu_item=1; /// /// 当前选择的二级菜单项 /// public int currenChose_SecondMenu_item=1; protected override void OnAwake() { base.OnAwake(); upBtn.clickAction += () => { if (triggerAction?.Invoke(upBtn.triggerName, true) == 0) { if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页) { AwakeUp(); } else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单) { //主菜单 currentChose_MainMenu_item = Mathf.Max(currentChose_MainMenu_item - 1, 1); ChoseMainMenu(currentChose_MainMenu_item); } else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_终端信息) { //进入7-1 menu_2s[currentChose_MainMenu_item - 1].Find("7-1").gameObject.SetActive(true); menu_2s[currentChose_MainMenu_item - 1].Find("7-2").gameObject.SetActive(false); } else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值) { if (menu_2s[1].Find("2-menu").gameObject.activeInHierarchy) { //菜单选择界面 currenChose_SecondMenu_item = Mathf.Max(currenChose_SecondMenu_item - 1, 1); Chose参数定值Menu(currenChose_SecondMenu_item); } } } }; downBtn.clickAction += () => { if (triggerAction?.Invoke(downBtn.triggerName, true) == 0) { if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页) { AwakeUp(); } else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单) { //主菜单 currentChose_MainMenu_item = Mathf.Min(currentChose_MainMenu_item + 1, 8); ChoseMainMenu(currentChose_MainMenu_item); } else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_终端信息) { //进入7-2 menu_2s[currentChose_MainMenu_item - 1].Find("7-1").gameObject.SetActive(false); menu_2s[currentChose_MainMenu_item - 1].Find("7-2").gameObject.SetActive(true); } else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值) { if (menu_2s[1].Find("2-menu").gameObject.activeInHierarchy) { //菜单选择界面 currenChose_SecondMenu_item = Mathf.Min(currenChose_SecondMenu_item + 1, 8); Chose参数定值Menu(currenChose_SecondMenu_item); } } } }; leftBtn.clickAction += () => { if (triggerAction?.Invoke(leftBtn.triggerName, true) == 0) { if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页) { AwakeUp(); } else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单) { //主菜单 currentChose_MainMenu_item = Mathf.Max(currentChose_MainMenu_item - 4, 1); ChoseMainMenu(currentChose_MainMenu_item); } else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值) { if (menu_2s[1].Find("2-menu").gameObject.activeInHierarchy) { //菜单选择界面 currenChose_SecondMenu_item = Mathf.Max(currenChose_SecondMenu_item - 4, 1); Chose参数定值Menu(currenChose_SecondMenu_item); } } } }; rightBtn.clickAction += () => { if (triggerAction?.Invoke(rightBtn.triggerName, true) == 0) { if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页) { AwakeUp(); } else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单) { //主菜单 currentChose_MainMenu_item = Mathf.Min(currentChose_MainMenu_item + 4, 8); ChoseMainMenu(currentChose_MainMenu_item); } else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值) { if (menu_2s[1].Find("2-menu").gameObject.activeInHierarchy) { //菜单选择界面 currenChose_SecondMenu_item = Mathf.Min(currenChose_SecondMenu_item + 4, 8); Chose参数定值Menu(currenChose_SecondMenu_item); } } } }; okBtn.clickAction += () => { if (triggerAction?.Invoke(okBtn.triggerName, true) == 0) { if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页) { AwakeUp(); } else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.锁屏页) { //进入主菜单 type = SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单; wakeUp.gameObject.SetActive(false); mainMenu.gameObject.SetActive(true); currentChose_MainMenu_item = 1; ChoseMainMenu(1); } else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单) { //进入二级菜单 if(currentChose_MainMenu_item==2) { //参数定制选择界面 currenChose_SecondMenu_item = 1; mainMenu.gameObject.SetActive(false); menu_2s[1].gameObject.SetActive(true); //初始化除菜单选择外全部隐藏 menu_2s[1].Find("2-menu").gameObject.SetActive(true); menu_2s[1].Find("2-8").gameObject.SetActive(false); Chose参数定值Menu(1); type = SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值; } else if (currentChose_MainMenu_item == 7) { //7-1界面 mainMenu.gameObject.SetActive(false); menu_2s[6].gameObject.SetActive(true); menu_2s[6].Find("7-1").gameObject.SetActive(true); menu_2s[6].Find("7-2").gameObject.SetActive(false); type = SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_终端信息; } } else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值) { //进入参数选择子页面 if(currenChose_SecondMenu_item==8) { menu_2s[1].Find("2-8").gameObject.SetActive(true); menu_2s[1].Find("2-menu").gameObject.SetActive(false); } } //打分 CallScoreAction(type, triggerName); } }; backBtn.clickAction += () => { if (triggerAction?.Invoke(backBtn.triggerName, true) == 0) { if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页) { AwakeUp(); } else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值) { if (menu_2s[1].Find("2-menu").gameObject.activeInHierarchy) { //退出到主菜单 type = SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单; mainMenu.gameObject.SetActive(true); menu_2s[1].gameObject.SetActive(false); currentChose_MainMenu_item = 2; ChoseMainMenu(2); } else { //退出到参数定制菜单页 menu_2s[1].Find("2-" + currenChose_SecondMenu_item.ToString()).gameObject.SetActive(false); menu_2s[1].Find("2-menu").gameObject.SetActive(true); } } else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_终端信息) { if (menu_2s[currentChose_MainMenu_item - 1].Find("7-1").gameObject.activeInHierarchy) { //退出到主菜单 type = SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单; mainMenu.gameObject.SetActive(true); menu_2s[6].gameObject.SetActive(false); currentChose_MainMenu_item = 7; ChoseMainMenu(7); } else if (menu_2s[currentChose_MainMenu_item - 1].Find("7-2").gameObject.activeInHierarchy) { //退出到7-1 menu_2s[currentChose_MainMenu_item - 1].Find("7-1").gameObject.SetActive(true); menu_2s[currentChose_MainMenu_item - 1].Find("7-2").gameObject.SetActive(false); } } } }; } /// /// 唤醒 /// private void AwakeUp() { if (type== SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页) { type = SpecializedVariableAcquisitionTerminal_Screen_Enum.锁屏页; restart.gameObject.SetActive(false); wakeUp.gameObject.SetActive(true); wakeUp.Find("信号").gameObject.SetActive(!isGPRS故障); } } /// /// 选中主菜单项 /// /// private void ChoseMainMenu(int num) { for (int i = 1; i <= 8; i++) { if (i==num) { //选中 mainMenu.Find(i.ToString()).GetComponent().color = new Color(0, 0, 0, 1); mainMenu.Find(i.ToString()).GetComponentInChildren().color = Color.white; } else { //未选中 mainMenu.Find(i.ToString()).GetComponent().color = new Color(0, 0, 0, 0); mainMenu.Find(i.ToString()).GetComponentInChildren().color = Color.black; } } mainMenu.Find("信号").gameObject.SetActive(!isGPRS故障); } /// /// 选中二级菜单项 /// /// private void Chose参数定值Menu(int num) { for (int i = 1; i <= 8; i++) { if (i == num) { //选中 menu_2s[1].Find("2-menu/"+i.ToString()).GetComponent().color = new Color(0, 0, 0, 1); menu_2s[1].Find("2-menu/"+i.ToString()).GetComponentInChildren().color = Color.white; } else { //未选中 menu_2s[1].Find("2-menu/"+i.ToString()).GetComponent().color = new Color(0, 0, 0, 0); menu_2s[1].Find("2-menu/"+i.ToString()).GetComponentInChildren().color = Color.black; } } menu_2s[1].Find("2-menu/信号").gameObject.SetActive(!isGPRS故障); } /// /// 设置到屏显界面 /// /// public void SetState(SpecializedVariableAcquisitionTerminal_Screen_Enum type) { this.type= type; if (type== SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页) { wakeUp.gameObject.SetActive(false); mainMenu.gameObject.SetActive(false); menu_2s.ForEach(sec => { sec?.gameObject.SetActive(false); }); } else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.锁屏页) { wakeUp.gameObject.SetActive(true); mainMenu.gameObject.SetActive(false); menu_2s.ForEach(sec => { sec?.gameObject.SetActive(false); }); wakeUp.Find("信号").gameObject.SetActive(!isGPRS故障); } else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单) { wakeUp.gameObject.SetActive(false); mainMenu.gameObject.SetActive(true); menu_2s.ForEach(sec => { sec.gameObject.SetActive(false); }); mainMenu.Find("信号").gameObject.SetActive(!isGPRS故障); } else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_终端信息) { wakeUp.gameObject.SetActive(false); mainMenu.gameObject.SetActive(false); currentChose_MainMenu_item = 6; ChoseMainMenu(6); //进入7-1界面 menu_2s[6].Find("7-1").gameObject.SetActive(true); menu_2s[6].Find("7-2").gameObject.SetActive(false); } else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值) { wakeUp.gameObject.SetActive(false); mainMenu.gameObject.SetActive(false); menu_2s[1].gameObject.SetActive(true); currentChose_MainMenu_item = 2; Chose参数定值Menu(1); menu_2s[1].Find("2-menu").gameObject.SetActive(true); menu_2s[1].Find("2-8").gameObject.SetActive(false); } } /// /// 刷新故障状态 /// public void Refresh() { if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.锁屏页) { wakeUp.Find("信号").gameObject.SetActive(!isGPRS故障); } else if(type == SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单) { mainMenu.Find("信号").gameObject.SetActive(!isGPRS故障); } } /// /// 重启 /// public void Restart() { if (!isMoving) { Debug.Log("开始重启"); isMoving = true; type = SpecializedVariableAcquisitionTerminal_Screen_Enum.重启页; restart.gameObject.SetActive(true); wakeUp.gameObject.SetActive(false); mainMenu.gameObject.SetActive(false); menu_2s.ForEach(sec => { sec?.gameObject.SetActive(false); }); StartCoroutine(DoRestart()); } } IEnumerator DoRestart() { yield return new WaitForSeconds(3); isMoving = false; type = SpecializedVariableAcquisitionTerminal_Screen_Enum.锁屏页; SetState(SpecializedVariableAcquisitionTerminal_Screen_Enum.锁屏页); Debug.Log("重启成功"); } } /// /// 专变设备终端屏显枚举 /// public enum SpecializedVariableAcquisitionTerminal_Screen_Enum { 待机页, 锁屏页, 主菜单, 二级菜单_实时数据, 二级菜单_参数定值, 二级菜单_控制状态, 二级菜单_电能表示数, 二级菜单_中文信息, 二级菜单_购电信息, 二级菜单_终端信息, 二级菜单_测量点数据, 重启页 }