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);
}
}
}