YanCheng_Metrology/Assets/Scripts/Project/UI/UI_Item/UI_SubProcessItem.cs

92 lines
3.1 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 System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class UI_SubProcessItem : BaseItem
{
public int processID;
public int subProcessID;
public int subProcessStepID;
public string warnnigTips;
public void Init(D_SubProcess d_SubProcess, int subProcessID)
{
this.processID = d_SubProcess.processId;
this.subProcessID = d_SubProcess.id;
this.subProcessStepID = d_SubProcess.subProcessStepes[0].id;
GetControl<TextMeshProUGUI>("subProcessItemName").text = d_SubProcess.subProcessName;
gameObject.name = subProcessID.ToString();
SwitchSubProcess(subProcessID);
ShowMe();
warnnigTips = "当前步骤还没有学完,确定要切换吗?";
}
public override void ShowMe()
{
GameManager.EventMgr.AddEventListener<int>(Enum_EventType.SwitchSubProcess, SwitchSubProcess);
}
/// <summary>
/// 控制按钮状态
/// </summary>
/// <param name="subProcess"></param>
private void SwitchSubProcess(int subProcess)
{
if (subProcessID == subProcess)
GetControl<Image>("learningTips").gameObject.SetActive(true);
else
GetControl<Image>("learningTips").gameObject.SetActive(false);
}
/// <summary>
///
/// </summary>
/// <param name="isReset"></param>
/// <param name="state">0 未完成所有步骤跳转1 完成所有步骤跳转</param>
public void OnResetClick(bool isReset, int state)
{
warnnigTips = isReset ? "是否重新学习?" : "当前步骤还没有学完,确定要切换吗?";
if (state == 0)
OnClick("subProcessBtn");
else
CheckSubProcess();
}
protected override void OnClick(string btnName)
{
base.OnClick(btnName);
switch (btnName)
{
case "subProcessBtn":
if (GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.triggersName.Count > 0)
{
CheckSubProcess();
}
break;
}
}
private void CheckSubProcess()
{
GameManager.UIMgr.ShowPanel<UI_MessagePanel>(E_UI_Layer.System, (p) =>
{
p.Init("提示", warnnigTips, E_MessageType.Error, () =>
{
GameManager.ProcessMgr.HandoverProcess(processID, subProcessID, subProcessStepID);
//重置物体
StepStateControl.instance.InvokeInitStepState(GameManager.Instance.systemId, GameManager.ProcessMgr.d_Scheme.id, subProcessID);
GameManager.EventMgr.EventTrigger<int>(Enum_EventType.SwitchSubProcess, subProcessID);
//Debug.LogError(ProcessManager.Instance.subProcessStepTriggerID);
GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, ProcessManager.Instance.subProcessStepTriggerID);
});
});
}
private void OnDestroy()
{
GameManager.EventMgr.RemoveEventListener<int>(Enum_EventType.SwitchSubProcess, SwitchSubProcess);
}
}