Compare commits

...

2 Commits

4 changed files with 47 additions and 29 deletions

View File

@ -2,6 +2,7 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Net.NetworkInformation; using System.Net.NetworkInformation;
using UnityEngine; using UnityEngine;
using System.Linq;
public class ProcessManager : BaseManager<ProcessManager> public class ProcessManager : BaseManager<ProcessManager>
{ {
@ -178,7 +179,7 @@ public class ProcessManager : BaseManager<ProcessManager>
} }
} }
public int currentSubProcessIDTemp = 0;
/// <summary> /// <summary>
/// 0 正常1 不在当前步骤触发ID2 当前步骤没有触发ID了 /// 0 正常1 不在当前步骤触发ID2 当前步骤没有触发ID了
/// </summary> /// </summary>
@ -202,29 +203,33 @@ public class ProcessManager : BaseManager<ProcessManager>
{ {
if (triggerName != "工具间按钮" && triggerName != "现场按钮" && triggerName != "收回工具") if (triggerName != "工具间按钮" && triggerName != "现场按钮" && triggerName != "收回工具")
{ {
if (d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.subProcessId != currentSubProcessIDTemp) if (d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep == d_Scheme.CurrentProcess.CurrentSubProcess.subProcessStepes.Last())
{ {
GameManager.UIMgr.ShowPanel<UI_MessagePanel>(E_UI_Layer.System, (p) => if (d_Scheme.CurrentProcess.CurrentSubProcess == d_Scheme.CurrentProcess.subProcesses.Last())
{ {
p.Init("提示", "当前步骤已完成,即将进入下一步", E_MessageType.Normal, () => CheckSubProcessSteps(subProcessStepId);
}
else
{
GameManager.UIMgr.ShowPanel<UI_MessagePanel>(E_UI_Layer.System, (p) =>
{ {
CheckSubProcessSteps(subProcessStepId); p.Init("提示", "当前步骤已完成,即将进入下一步", E_MessageType.Normal, () =>
CurrentSubProcessStepTriggerNames(); {
CheckSubProcessSteps(subProcessStepId);
CurrentSubProcessStepTriggerNames();
});
}); });
}); }
currentSubProcessIDTemp = d_Scheme.CurrentProcess.CurrentSubProcess.id;
} }
else else
{ {
CheckSubProcessSteps(subProcessStepId); CheckSubProcessSteps(subProcessStepId);
currentSubProcessIDTemp = d_Scheme.CurrentProcess.CurrentSubProcess.id;
} }
} }
else else
{ {
CheckSubProcessSteps(subProcessStepId); CheckSubProcessSteps(subProcessStepId);
currentSubProcessIDTemp = d_Scheme.CurrentProcess.CurrentSubProcess.id;
} }
} }
CurrentSubProcessStepTriggerNames(); CurrentSubProcessStepTriggerNames();

View File

@ -40,10 +40,18 @@ public class UI_SubProcessItem : BaseItem
else else
GetControl<Image>("learningTips").gameObject.SetActive(false); GetControl<Image>("learningTips").gameObject.SetActive(false);
} }
public void OnResetClick(bool isReset) /// <summary>
///
/// </summary>
/// <param name="isReset"></param>
/// <param name="state">0 未完成所有步骤跳转1 完成所有步骤跳转</param>
public void OnResetClick(bool isReset, int state)
{ {
warnnigTips = isReset ? "是否重新学习?" : "当前步骤还没有学完,确定要切换吗?"; warnnigTips = isReset ? "是否重新学习?" : "当前步骤还没有学完,确定要切换吗?";
OnClick("subProcessBtn"); if (state == 0)
OnClick("subProcessBtn");
else
CheckSubProcess();
} }
protected override void OnClick(string btnName) protected override void OnClick(string btnName)
{ {
@ -54,23 +62,27 @@ public class UI_SubProcessItem : BaseItem
if (GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.triggersName.Count > 0) if (GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.triggersName.Count > 0)
{ {
GameManager.UIMgr.ShowPanel<UI_MessagePanel>(E_UI_Layer.System, (p) => CheckSubProcess();
{
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);
});
});
} }
break; 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() private void OnDestroy()
{ {

View File

@ -48,16 +48,17 @@ public class UI_TaskListPanel : BasePanel
/// <summary> /// <summary>
/// µã»÷µÚÒ»¸ö /// µã»÷µÚÒ»¸ö
/// </summary> /// </summary>
public void ClickFirstSubProcessesItem() /// <param name="state">0 未完成所有步骤跳转1 完成所有步骤跳转</param>
public void ClickFirstSubProcessesItem(int state)
{ {
if (_content.GetChild(0).GetComponent<UI_SubProcessItem>()) if (_content.GetChild(0).GetComponent<UI_SubProcessItem>())
{ {
_content.GetChild(0).GetComponent<UI_SubProcessItem>().OnResetClick(true); _content.GetChild(0).GetComponent<UI_SubProcessItem>().OnResetClick(true, state);
return; return;
} }
if (_content.GetChild(1).GetComponent<UI_SubProcessItem>()) if (_content.GetChild(1).GetComponent<UI_SubProcessItem>())
{ {
_content.GetChild(1).GetComponent<UI_SubProcessItem>().OnResetClick(true); _content.GetChild(1).GetComponent<UI_SubProcessItem>().OnResetClick(true, state);
} }
} }
@ -70,7 +71,7 @@ public class UI_TaskListPanel : BasePanel
GameManager.Instance.ShowUIPanelAndLoadScene(true); GameManager.Instance.ShowUIPanelAndLoadScene(true);
break; break;
case "ReStartBtn": case "ReStartBtn":
ClickFirstSubProcessesItem(); ClickFirstSubProcessesItem(0);
break; break;
case "RePracticeBtn": case "RePracticeBtn":
GameManager.Instance.Practice(); GameManager.Instance.Practice();

View File

@ -26,7 +26,7 @@ public class UI_TipsForPracticePanel : BasePanel
case "ResetStudy": case "ResetStudy":
if (GameManager.UIMgr.GetPanel<UI_TaskListPanel>()) if (GameManager.UIMgr.GetPanel<UI_TaskListPanel>())
{ {
GameManager.UIMgr.GetPanel<UI_TaskListPanel>().ClickFirstSubProcessesItem(); GameManager.UIMgr.GetPanel<UI_TaskListPanel>().ClickFirstSubProcessesItem(1);
} }
break; break;
case "BackBtn": case "BackBtn":