using ZXK.Framework; using ZXK.UTility; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Networking; using System.Linq; using UnityEngine.SceneManagement; /******************************************************************************* *Create By CG *Function *******************************************************************************/ namespace ZXK.BYSS { /// /// 5个小模块, /// 三个按钮不同的控制逻辑 /// public enum XHBY_Type { //PLC控制气缸 PLC_KZQG, //PLC控制直流电机 PLC_KZZLD, //光电传感器 GDCGQ, //机械手往返控制 JXSWF, //搬运小球定位控制 BYXQ, //自动升降送料综合控制 ZDSJS } public class AppManagement : MonoSingleton { public EnumCtrl.Type _CurType = EnumCtrl.Type.XHBY; //循环搬运机械手 6个模块 public static XHBY_Type XhbyType; public static Dictionary _ImgDataArray = new Dictionary(); [SerializeField] private HintModel _hintData; public HintModel _HintData { get => _hintData; } [MyReadOnly] public EnumCtrl.Model _TrainExam= EnumCtrl.Model.None; [MyReadOnly] public EnumCtrl.Model _CurModel = EnumCtrl.Model.None; [MyReadOnly] public bool _FirstEnterApp = true;//????????????????? [MyReadOnly]//??????? public AppModel _AppModel = null; [MyReadOnly]//?豸??????? public CognizeModel _CognizeData = null; [MyReadOnly]//ui???? public UIModel _UiPanelData = null; public int _ConnectScore = 0; public int _GasScore = 0; protected override void AwakeSelf() { base.AwakeSelf(); _AppModel = new AppModel(); StartCoroutine(_AppModel.ReadExcelDataWeb()); _CognizeData = new CognizeModel(); StartCoroutine(_CognizeData.InitDataIEnum()); } private void Start() { _UiPanelData = new UIModel(); _UiPanelData.InitData(); } public void XHBY_ChangeModel(EnumCtrl.Model _CurModel) { switch (_CurModel) { case EnumCtrl.Model.None: break; case EnumCtrl.Model.Home: XHBY_ChangState(EnumCtrl.Model.Home.ToString(), () => { UI_Manage.Instance.ShowPanel("HomePanel"); }); break; case EnumCtrl.Model.Select2: UI_Manage.Instance.ShowPanel("Select2Panel"); XHBY_ChangState(EnumCtrl.Model.Home.ToString(), () => { UI_Manage.Instance.ShowPanel("Select2Panel"); }); break; case EnumCtrl.Model.Select3: XHBY_ChangState(EnumCtrl.Model.Home.ToString(), () => { UI_Manage.Instance.ShowPanel("Select3Panel"); }); break; case EnumCtrl.Model.Cognize: XHBY_ChangState(EnumCtrl.Model.Cognize.ToString(), () => { UI_Manage.Instance.ShowPanel("CognizePanel"); }); break; case EnumCtrl.Model.Teach: _TrainExam = EnumCtrl.Model.Teach; UI_Manage.Instance.HideAllPanel(GameObject.Find("TopCanvas").transform); UI_Manage.Instance.ShowPanel("BlackMaskPanel", -1, GameObject.Find("TopCanvas").transform); XHBY_ChangState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ClosePanel("BlackMaskPanel"); UI_Manage.Instance.ShowPanel("PracticeAndExamPanel"); UI_Manage.Instance.ShowPanel("HoverPanel"); }); break; case EnumCtrl.Model.Train: _TrainExam = EnumCtrl.Model.Train; UI_Manage.Instance.Clear(GameObject.Find("Canvas").transform); UI_Manage.Instance.HideAllPanel(GameObject.Find("TopCanvas").transform); UI_Manage.Instance.ShowPanel("BlackMaskPanel", -1, GameObject.Find("TopCanvas").transform); XHBY_ChangState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ClosePanel("BlackMaskPanel"); UI_Manage.Instance.ShowPanel("HoverPanel"); UI_Manage.Instance.ShowPanel("PracticeAndExamPanel"); }); break; case EnumCtrl.Model.Exam: _TrainExam = EnumCtrl.Model.Exam; UI_Manage.Instance.Clear(GameObject.Find("Canvas").transform); UI_Manage.Instance.HideAllPanel(GameObject.Find("TopCanvas").transform); UI_Manage.Instance.ShowPanel("BlackMaskPanel", -1, GameObject.Find("TopCanvas").transform); XHBY_ChangState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ClosePanel("BlackMaskPanel"); UI_Manage.Instance.ShowPanel("HoverPanel"); UI_Manage.Instance.ShowPanel("PracticeAndExamPanel"); }); break; case EnumCtrl.Model.Line: XHBY_ChangState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ShowPanel("ConnectPanel"); }); break; case EnumCtrl.Model.Debug: XHBY_ChangState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ShowPanel(_CurType + "DebugPanel"); }); break; case EnumCtrl.Model.Gas: XHBY_ChangState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ShowPanel("GasPanel"); }); break; case EnumCtrl.Model.Running: XHBY_ChangState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ShowPanel("RunningPanel"); }); break; } } /// /// ?л??? /// /// public void ChangeModel(EnumCtrl.Model model) { _CurModel = model; switch (_CurModel) { case EnumCtrl.Model.None: break; case EnumCtrl.Model.Home: ChangeState(EnumCtrl.Model.Home.ToString(), () => { UI_Manage.Instance.ShowPanel("HomePanel"); }); break; case EnumCtrl.Model.Select2: ChangeState(EnumCtrl.Model.Home.ToString(), () => { UI_Manage.Instance.ShowPanel("Select2Panel"); }); break; case EnumCtrl.Model.Select3: ChangeState(EnumCtrl.Model.Home.ToString(), () => { UI_Manage.Instance.ShowPanel("Select3Panel"); }); break; case EnumCtrl.Model.Cognize: UI_Manage.Instance.ShowPanel("BlackMaskPanel", -1, GameObject.Find("TopCanvas").transform); ChangeState(EnumCtrl.Model.Cognize.ToString(), ()=> { UI_Manage.Instance.ClosePanel("BlackMaskPanel"); UI_Manage.Instance.ShowPanel("CognizePanel"); }); break; case EnumCtrl.Model.Teach: _TrainExam = EnumCtrl.Model.Teach; UI_Manage.Instance.HideAllPanel(GameObject.Find("TopCanvas").transform); UI_Manage.Instance.ShowPanel("BlackMaskPanel", -1, GameObject.Find("TopCanvas").transform); ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ClosePanel("BlackMaskPanel"); UI_Manage.Instance.ShowPanel("PracticeAndExamPanel"); UI_Manage.Instance.ShowPanel("HoverPanel"); }); break; case EnumCtrl.Model.Train: _TrainExam = EnumCtrl.Model.Train; UI_Manage.Instance.Clear(GameObject.Find("Canvas").transform); UI_Manage.Instance.HideAllPanel(GameObject.Find("TopCanvas").transform); UI_Manage.Instance.ShowPanel("BlackMaskPanel", -1, GameObject.Find("TopCanvas").transform); ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ClosePanel("BlackMaskPanel"); UI_Manage.Instance.ShowPanel("HoverPanel"); UI_Manage.Instance.ShowPanel("PracticeAndExamPanel"); }); break; case EnumCtrl.Model.Exam: _TrainExam = EnumCtrl.Model.Exam; UI_Manage.Instance.Clear(GameObject.Find("Canvas").transform); UI_Manage.Instance.HideAllPanel(GameObject.Find("TopCanvas").transform); UI_Manage.Instance.ShowPanel("BlackMaskPanel",-1, GameObject.Find("TopCanvas").transform); ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ClosePanel("BlackMaskPanel"); UI_Manage.Instance.ShowPanel("HoverPanel"); UI_Manage.Instance.ShowPanel("PracticeAndExamPanel"); }); break; case EnumCtrl.Model.Line: ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ShowPanel("ConnectPanel"); }); break; case EnumCtrl.Model.Debug: ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { switch (XhbyType) { //plc控制气缸: case XHBY_Type.PLC_KZQG: UI_Manage.Instance.ShowPanel("KZQGDebugPanel"); break; // 控制直流电机 case XHBY_Type.PLC_KZZLD: UI_Manage.Instance.ShowPanel("KZZLDJDebugPanel"); break; // 光电传感器 case XHBY_Type.GDCGQ: UI_Manage.Instance.ShowPanel("ZDSJSLZHKZDebugPanel"); break; //机械手往返控制 case XHBY_Type.JXSWF: UI_Manage.Instance.ShowPanel("ZDSJSLZHKZDebugPanel"); break; //搬运小球定位控制 case XHBY_Type.BYXQ: UI_Manage.Instance.ShowPanel("BYXQDebugPanel"); break; //自动升降送料 case XHBY_Type.ZDSJS: UI_Manage.Instance.ShowPanel("BYXQDebugPanel"); break; } }); break; case EnumCtrl.Model.Gas: ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ShowPanel("GasPanel"); }); break; case EnumCtrl.Model.Running: ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ShowPanel("RunningPanel"); }); break; default: break; } } private void ChangeState(string changeToSceneName, System.Action loadedCall) { string curSceneName = SceneManager.GetActiveScene().name; if (curSceneName.Equals(changeToSceneName)) { UI_Manage.Instance.HideAllPanel(); loadedCall?.Invoke(); } else { UI_Manage.Instance.Clear(); LoadScenes.Instance.LoadScene(changeToSceneName, loadedCall); } } public void XHBY_ChangState(string changeToSceneName, System.Action loadedCall) { UI_Manage.Instance.Clear(); LoadScenes.Instance.LoadScene(changeToSceneName, loadedCall); } } }