2025-03-10 10:18:11 +08:00

88 lines
3.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
using ZXK.UTility;
/*******************************************************************************
*Create By CG
*Function 一级工序ui按钮控制相关
*******************************************************************************/
namespace ZXK.ZPS
{
public class UIFirstItemCtrl : MonoBehaviour
{
[SerializeField]
private Text _nameTxt = null;
[SerializeField]
private GameObject _arrayImg = null;//一级工序到二级工序箭头
private Dictionary<string, DataItemModel> _secondDic = new Dictionary<string, DataItemModel>();
private UISecondPanelCtrl _secondPanelCtrl = null;
/// <summary>
/// 初始化一级工序按钮
/// </summary>
/// <param name="firstName">一级工序名字</param>
/// <param name="secondDic">此一级工序对应的所有二级工序数据</param>
/// <param name="secondPanelCtrl">二级工序面板</param>
public void InitFirstItem(string firstName, Dictionary<string, DataItemModel> secondDic, UISecondPanelCtrl secondPanelCtrl)
{
transform.name = _nameTxt.text = firstName.Trim();
_secondDic = secondDic;
_secondPanelCtrl = secondPanelCtrl;
GetComponent<Toggle>().onValueChanged.AddListener((isOn) =>
{
OnClickHandle(isOn);
UIToolPanelCtrl._Instance.switchstep();
});
}
/// <summary>
/// 动态调用一级工序显示
/// </summary>
public void SetToggerShow()
{
GetComponent<Toggle>().isOn = true;
}
/// <summary>
/// 点击一级工序Toggle
/// </summary>
/// <param name="isOn"></param>
private void OnClickHandle(bool isOn)
{
_arrayImg.SetActive(isOn);
if (isOn)
{
GameRoot.Instance._CurFirstProcess = transform.name;
if (GameRoot.Instance._CurModel == EnumCtrl.Model.Train)
{//实训模式下,下一个工序就是此一级工序的第一个工序
GameRoot.Instance._NextSecondProcess = _secondDic.First().Key;
//PopUpMng.PopAlert($"{transform.name}实训", 100);
PopUpMng.PopAlert($"请点击{GameRoot.Instance._CurFirstProcess}-{GameRoot.Instance._NextSecondProcess},开始训练", 100);
}
if (transform.position.y < 400)
{
_secondPanelCtrl.transform.position = transform.position + new Vector3(100, 300, 0);
}
else
{
_secondPanelCtrl.transform.position = transform.position + new Vector3(100, 0, 0);
}
_secondPanelCtrl.ShowSecondPanel(_secondDic);
_secondPanelCtrl.gameObject.SetActive(true);
}
else
{
GameRoot.Instance._CurFirstProcess = null;
GameRoot.Instance._CurSecondProcess = null;
GameRoot.Instance._TrainMng?.CloseProcess();
_secondPanelCtrl.HideSecondPanel();
}
}
}
}