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("subProcessItemName").text = d_SubProcess.subProcessName; gameObject.name = subProcessID.ToString(); SwitchSubProcess(subProcessID); ShowMe(); warnnigTips = "当前步骤还没有学完,确定要切换吗?"; } public override void ShowMe() { GameManager.EventMgr.AddEventListener(Enum_EventType.SwitchSubProcess, SwitchSubProcess); } /// /// 控制按钮状态 /// /// private void SwitchSubProcess(int subProcess) { if (subProcessID == subProcess) GetControl("learningTips").gameObject.SetActive(true); else GetControl("learningTips").gameObject.SetActive(false); } /// /// /// /// /// 0 未完成所有步骤跳转,1 完成所有步骤跳转 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(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(Enum_EventType.SwitchSubProcess, subProcessID); //Debug.LogError(ProcessManager.Instance.subProcessStepTriggerID); GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchSubProcessStepTriggerID, ProcessManager.Instance.subProcessStepTriggerID); }); }); } private void OnDestroy() { GameManager.EventMgr.RemoveEventListener(Enum_EventType.SwitchSubProcess, SwitchSubProcess); } }