2025-02-12 08:43:33 +08:00

402 lines
14 KiB
C#

using System.Collections;
using System.Collections.Generic;
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
using ZXK.Framework;
using ZXK.UTility;
/*******************************************************************************
*Create By CG
*Function ³ÌÐò¶¥²¿UI¿ØÖÆ
*******************************************************************************/
namespace ZXK.BYSS
{
public class HoverPanel : UIBase
{
private Image _topImg = null;
private Image _returnExitImg = null;
private GameObject[] _btns = new GameObject[5];
private PracticeAndExamInSceneCtrl _practiceAndExamCtrl = null;
private static Sprite _normalImg = null;
private void Start()
{
_returnExitImg = GetWedage("ReturnExit_N").GetComponent<Image>();
_topImg = GetWedage("TopImg_N").GetComponent<Image>();
AddEventListener("ReturnExit_N", UIEventType.OnButtonClick, () =>
{
PopUpMng._TriAble = true;
ReturnExit();
});
AddEventListener("Home_N", UIEventType.OnButtonClick, () =>
{
PopUpMng._TriAble = true;
AppManagement.Instance.ChangeModel(EnumCtrl.Model.Home);
});
AddEventListener("Setting_N", UIEventType.OnButtonClick, () =>
{
UI_Manage.Instance.ShowPanel("SettingSystemPanel");
});
GameObject computerBtnGeo = GetWedage("ComputerBtn_N");
_btns[0] = computerBtnGeo;
_normalImg = computerBtnGeo.GetComponent<Image>().sprite;
GameObject connectBtnGeo = GetWedage("ConnectBtn_N");
_btns[1] = connectBtnGeo;
GameObject debugBtnGeo = GetWedage("DebugBtn_N");
_btns[2] = debugBtnGeo;
GameObject gasBtnGeo = GetWedage("GasBtn_N");
_btns[3] = gasBtnGeo;
GameObject runningBtnGeo = GetWedage("RunningBtn_N");
_btns[4] = runningBtnGeo;
AddEventListener("ComputerBtn_N", UIEventType.OnButtonClick, () =>
{
if (AppManagement.Instance._CurModel != EnumCtrl.Model.Train)
{
PopUpMng._TriAble = true;
SetProcessBtnState(0);
}
});
AddEventListener("ConnectBtn_N", UIEventType.OnButtonClick, () =>
{
if (AppManagement.Instance._CurModel != EnumCtrl.Model.Line)
{
PopUpMng._TriAble = true;
SetProcessBtnState(1);
}
});
AddEventListener("DebugBtn_N", UIEventType.OnButtonClick, () =>
{
if (AppManagement.Instance._CurModel != EnumCtrl.Model.Debug)
{
PopUpMng._TriAble = true;
SetProcessBtnState(2);
}
});
AddEventListener("GasBtn_N", UIEventType.OnButtonClick, () =>
{
if (AppManagement.Instance._CurModel != EnumCtrl.Model.Gas)
{
PopUpMng._TriAble = true;
SetProcessBtnState(3);
}
});
AddEventListener("RunningBtn_N", UIEventType.OnButtonClick, () =>
{
if (AppManagement.Instance._CurModel != EnumCtrl.Model.Running)
{
PopUpMng._TriAble = true;
SetProcessBtnState(4);
}
});
//²»Í¬logoģʽ£¬ÏÔʾ²»Í¬µÄlogoͼƬ
switch (AppManagement.Instance.curLogoType)
{
case EnumCtrl.LogoType.LNZB:
GetWedage("logo_N").gameObject.SetActive(true);
GetWedage("ZXKlOGO_N").gameObject.SetActive(false);
break;
case EnumCtrl.LogoType.ZXK:
GetWedage("ZXKlOGO_N").gameObject.SetActive(true);
GetWedage("logo_N").gameObject.SetActive(false);
break;
}
}
private void LateUpdate()
{
ChangeStyle();
if ((int)AppManagement.Instance._CurModel >= (int)EnumCtrl.Model.Train)
{
if (AppManagement.Instance._TrainExam == EnumCtrl.Model.Train)
{
for (int i = 0; i < _btns.Length; i++)
{
_btns[i].SetActive(true);
}
}
}
else
{
for (int i = 0; i < _btns.Length; i++)
{
_btns[i].SetActive(false);
}
}
GetWedage("HoverParent_N").SetActive(true);
switch (AppManagement.Instance._CurModel)
{
case EnumCtrl.Model.Train:
SetBtnStyle(0);
break;
case EnumCtrl.Model.Exam:
break;
case EnumCtrl.Model.Line:
SetBtnStyle(1);
break;
case EnumCtrl.Model.Debug:
GetWedage("HoverParent_N").SetActive(false);
SetBtnStyle(2);
break;
case EnumCtrl.Model.Gas:
SetBtnStyle(3);
break;
case EnumCtrl.Model.Running:
SetBtnStyle(4);
break;
case EnumCtrl.Model.Teach:
SetBtnStyle(0);
break;
default:
break;
}
}
private void ReturnExit()
{
EnumCtrl.Model modelTemp = EnumCtrl.Model.None;
switch (AppManagement.Instance._CurModel)
{
case EnumCtrl.Model.None:
break;
case EnumCtrl.Model.Home:
UtilitiesMng.CustomQuit();
break;
case EnumCtrl.Model.Select2:
modelTemp = EnumCtrl.Model.Home;
break;
case EnumCtrl.Model.Select3:
case EnumCtrl.Model.Cognize:
modelTemp = EnumCtrl.Model.Select2;
break;
case EnumCtrl.Model.Teach:
case EnumCtrl.Model.Train:
case EnumCtrl.Model.Exam:
case EnumCtrl.Model.Line:
case EnumCtrl.Model.Debug:
case EnumCtrl.Model.Gas:
case EnumCtrl.Model.Running:
modelTemp = EnumCtrl.Model.Select3;
break;
default:
break;
}
AppManagement.Instance.ChangeModel(modelTemp);
}
private void ChangeStyle()
{
if (AppManagement.Instance._CurModel == EnumCtrl.Model.Home)
{
_returnExitImg.color = new Color(1 ,1, 1, 0);
_returnExitImg.transform.GetChild(0).GetComponent<Image>().color = new Color(1, 1, 1, 1);
_topImg.gameObject.SetActive(false);//.enabled = false;
}
else
{
_returnExitImg.color = new Color(1, 1, 1, 1);
_returnExitImg.transform.GetChild(0).GetComponent<Image>().color = new Color(1, 1, 1, 0);
_topImg.gameObject.SetActive(true);//.enabled = true;
}
}
/// <summary>
/// Íâ²¿Ìø¹ý×éװģʽ·½·¨
/// </summary>
public void SwitchZuZhuang()
{
if (AppManagement.Instance._CurModel != EnumCtrl.Model.Line)
{
PopUpMng._TriAble = true;
SetProcessBtnState(1);
}
}
private void SetProcessBtnState(int index)
{
_practiceAndExamCtrl = UI_Manage.Instance.GetPanel("PracticeAndExamPanel").GetComponent<PracticeAndExamPanel>()._CurTrainExamSceneCtrl;
for (int i = 0; i < _btns.Length; i++)
{
if (i < index)
{
_btns[i].GetComponent<Image>().color = new Color(170 / 255.0f, 170 / 255.0f, 170 / 255.0f, 170 / 255.0f);
_btns[i].GetComponent<Button>().interactable = false;
_btns[i].GetComponentInChildren<Text>().color = new Color(255 / 255.0f, 203 / 255.0f, 79 / 255.0f, 170 / 255.0f);
if (i == 0)
{
Dictionary<string, DataItemModel> allProcess = AppManagement.Instance._AppModel.DataJDSBArray[EnumCtrl.GetEnumDescription(AppManagement.Instance._CurType)];
foreach (var item in allProcess)
{
_practiceAndExamCtrl.ShowProcessPart(item.Value);
}
}
if (i == 1)
{
WDebug.Log("×Ô¶¯½ÓÏß");
_practiceAndExamCtrl.AutoLineDir();
}
if (i == 2)
{
WDebug.Log("debugģʽ");
//_practiceAndExamCtrl.DebugCtrl();
}
if (i == 3)
{
_practiceAndExamCtrl.AutoGas();
}
}
else if (i == index)
{
_btns[i].GetComponentInChildren<Text>().color = new Color(255 / 255.0f, 203 / 255.0f, 79 / 255.0f, 255 / 255.0f);
}
}
switch (index)
{
case 0://×é×°
if (_practiceAndExamCtrl.speakManager != null) {
WDebug.Log("¸ü¸ÄÒôÀÖ=É豸×é×°£¡£¡£¡");
_practiceAndExamCtrl.speakManager.ReSetAudioCilp();
_practiceAndExamCtrl.speakManager.Init();
_practiceAndExamCtrl.speakManager.ChangeModelAudio("É豸×é×°");
}
break;
case 1://½ÓÏß
AppManagement.Instance.ChangeModel(EnumCtrl.Model.Line);
if (_practiceAndExamCtrl.speakManager != null) {
WDebug.Log("¸ü¸ÄÒôÀÖ=É豸½ÓÏߣ¡£¡£¡");
_practiceAndExamCtrl.speakManager.ReSetAudioCilp();
_practiceAndExamCtrl.speakManager.Init();
_practiceAndExamCtrl.speakManager.ChangeModelAudio("É豸½ÓÏß");
}
break;
case 2://µ÷ÊÔ
AppManagement.Instance.ChangeModel(EnumCtrl.Model.Debug);
_practiceAndExamCtrl.speakManager.ReSetAudioCilp();
_practiceAndExamCtrl.speakManager.Init();
_practiceAndExamCtrl.speakManager.ChangeModelAudio("³ÌÐòµ÷ÊÔ");
break;
case 3://³äÆø
AppManagement.Instance.ChangeModel(EnumCtrl.Model.Gas);
if (_practiceAndExamCtrl.speakManager != null)
{
WDebug.Log("¸ü¸ÄÒôÀÖ=Æø±Ã³äÆø£¡£¡£¡");
_practiceAndExamCtrl.speakManager.ReSetAudioCilp();
_practiceAndExamCtrl.speakManager.Init();
_practiceAndExamCtrl.speakManager.ChangeModelAudio("Æø±Ã³äÆø");
}
break;
case 4://ÔËÐÐ
AppManagement.Instance.ChangeModel(EnumCtrl.Model.Running);
if (_practiceAndExamCtrl.speakManager != null)
{
WDebug.Log("¸ü¸ÄÒôÀÖ=É豸ÔËÐУ¡£¡£¡");
_practiceAndExamCtrl.speakManager.ReSetAudioCilp();
_practiceAndExamCtrl.speakManager.Init();
_practiceAndExamCtrl.speakManager.Init();
_practiceAndExamCtrl.speakManager.ChangeModelAudio("É豸ÔËÐÐ");
}
break;
}
}
private void SetBtnStyle(int index)
{
for (int i = 0; i < _btns.Length; i++)
{
_btns[i].GetComponent<Image>().sprite = _normalImg;
_btns[i].GetComponent<Image>().color = Color.white;
_btns[i].GetComponent<Button>().interactable = true;
_btns[i].GetComponentInChildren<Text>().color = new Color(200 / 255.0f, 200 / 255.0f, 200 / 255.0f, 1);
}
if (UI_Manage.Instance.GetPanel("PracticeAndExamPanel"))
{
_practiceAndExamCtrl = UI_Manage.Instance.GetPanel("PracticeAndExamPanel").GetComponent<PracticeAndExamPanel>()._CurTrainExamSceneCtrl;
}
for (int i = 0; i < _btns.Length; i++)
{
if (i < index)
{
SpriteState spriteState = _btns[i].GetComponent<Button>().spriteState;
Sprite pressedSprite = spriteState.pressedSprite;
_btns[i].GetComponent<Image>().sprite = pressedSprite;
_btns[i].GetComponent<Image>().color = new Color(170 / 255.0f, 170 / 255.0f, 170 / 255.0f, 170 / 255.0f);
_btns[i].GetComponent<Button>().interactable = false;
_btns[i].GetComponentInChildren<Text>().color = new Color(255 / 255.0f, 203 / 255.0f, 79 / 255.0f, 170 / 255.0f);
}
else if (i == index)
{
SpriteState spriteState = _btns[i].GetComponent<Button>().spriteState;
Sprite pressedSprite = spriteState.pressedSprite;
_btns[i].GetComponent<Image>().sprite = pressedSprite;
_btns[i].GetComponentInChildren<Text>().color = new Color(255 / 255.0f, 203 / 255.0f, 79 / 255.0f, 255 / 255.0f);
}
}
}
}
}