2025-02-11 17:11:14 +08:00

375 lines
14 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
{
/// <summary>
/// 5个小模块
/// 三个按钮不同的控制逻辑
/// </summary>
public enum XHBY_Type
{
//PLC控制气缸
PLC_KZQG,
//PLC控制直流电机
PLC_KZZLD,
//光电传感器
GDCGQ,
//机械手往返控制
JXSWF,
//搬运小球定位控制
BYXQ,
//自动升降送料综合控制
ZDSJS
}
public class AppManagement : MonoSingleton<AppManagement>
{
public EnumCtrl.Type _CurType = EnumCtrl.Type.XHBY;
//循环搬运机械手 6个模块
public static XHBY_Type XhbyType;
public static Dictionary<string, System.IO.Stream> _ImgDataArray = new Dictionary<string, System.IO.Stream>();
[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;
}
}
/// <summary>
/// ?л???
/// </summary>
/// <param name="model"></param>
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);
}
}
}