81 lines
2.9 KiB
C#
81 lines
2.9 KiB
C#
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 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();
|
|
|
|
}
|
|
|
|
public override void ShowMe()
|
|
{
|
|
GameManager.EventMgr.AddEventListener<int>(Enum_EventType.SwitchSubProcess, SwitchSubProcess);
|
|
}
|
|
public override void HideMe()
|
|
{
|
|
GameManager.EventMgr.RemoveEventListener<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);
|
|
}
|
|
|
|
protected override void OnClick(string btnName)
|
|
{
|
|
base.OnClick(btnName);
|
|
switch (btnName)
|
|
{
|
|
case "subProcessBtn":
|
|
|
|
if (GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.triggersName.Count > 0)
|
|
{
|
|
GameManager.UIMgr.ShowPanel<UI_MessagePanel>(E_UI_Layer.System, (p) =>
|
|
{
|
|
p.Init("提示", "当前步骤还没有学完,确定要切换吗?", 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);
|
|
},
|
|
() =>
|
|
{
|
|
GameManager.UIMgr.HidePanel<UI_MessagePanel>();
|
|
});
|
|
});
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
GameManager.EventMgr.RemoveEventListener<int>(Enum_EventType.SwitchSubProcess, SwitchSubProcess);
|
|
}
|
|
}
|