添加tool ID判断逻辑,串起来:任务接受面,办理工作票面板,低压工作票面板(没有逻辑)。

This commit is contained in:
YangHua 2024-08-14 16:02:23 +08:00
parent 4a475272d6
commit 29835b014d
12 changed files with 291 additions and 99 deletions

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -249,10 +249,6 @@ PrefabInstance:
propertyPath: m_Name
value: Player
objectReference: {fileID: 0}
- target: {fileID: 2399593117452945565, guid: 86a8666f9623b6b46b8f4b860a11546f, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2399593117452945566, guid: 86a8666f9623b6b46b8f4b860a11546f, type: 3}
propertyPath: m_RootOrder
value: 7
@ -297,18 +293,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2399593117623680743, guid: 86a8666f9623b6b46b8f4b860a11546f, type: 3}
propertyPath: m_RendererIndex
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2399593117846495250, guid: 86a8666f9623b6b46b8f4b860a11546f, type: 3}
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3910755197489471127, guid: 86a8666f9623b6b46b8f4b860a11546f, type: 3}
propertyPath: m_Height
value: 2
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 86a8666f9623b6b46b8f4b860a11546f, type: 3}
--- !u!1 &267617285 stripped

View File

@ -95,6 +95,7 @@ public class D_SubProcess : I_Enter, I_Exit
if (subProcessStepes == null || subProcessStepes.Count == 0)
return;
CurrentSubProcessStep = subProcessStepes[0];
currentSubProcessStep.Init();
}
}

View File

@ -20,18 +20,30 @@ public class D_SubProcessStep : I_Enter, I_Exit
public List<int> toolsId = new List<int>();
public void Init()
{
GetToolID();
}
/// <summary>
/// 获取目标ID, (后续 toolID 换成 targetID 应该更好点吧)
/// </summary>
private void GetToolID()
{
if (string.IsNullOrEmpty(toolId)) return;
if (toolId.Contains(','))
{
string[] toolIdTemp = toolId.Split(',');
for (int i = 0; i < toolIdTemp.Length; i++)
{
toolsId.Add(int.Parse(toolIdTemp[i]));
}
}
else
toolsId.Add(int.Parse(toolId));
}
@ -40,6 +52,7 @@ public class D_SubProcessStep : I_Enter, I_Exit
/// </summary>
public void Enter()
{
GetToolID();
UnityEngine.Debug.Log("进入当前子流程步骤:" + id + "_" + subProcessStepName);
}
/// <summary>
@ -47,6 +60,7 @@ public class D_SubProcessStep : I_Enter, I_Exit
/// </summary>
public void Exit()
{
toolsId.Clear();
UnityEngine.Debug.Log("退出当前子流程步骤:" + id + "_" + subProcessStepName);
}
}

View File

@ -122,6 +122,15 @@ public class ProcessManager : BaseManager<ProcessManager>
int spStepID = subProcessStepId + 1;
int spStepcount = d_Scheme.CurrentProcess.CurrentSubProcess.subProcessStepes.Count;
if (spStepID <= d_Scheme.CurrentProcess.CurrentSubProcess.subProcessStepes[spStepcount - 1].id)
{
if (d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.toolsId.Count > 0)
{
int currentSubProcessStepsToolId = d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.toolsId[0];
GameManager.EventMgr.EventTrigger<int>(Enum_EventType.SwitchSubProcessStepToolID, currentSubProcessStepsToolId);
d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.toolsId.RemoveAt(0);
return true;
}
else
{
HandoverSubProcessStep(spStepID);
GameManager.EventMgr.EventTrigger<int>(Enum_EventType.SwitchSubProcessStep, subProcessStepID);
@ -132,6 +141,7 @@ public class ProcessManager : BaseManager<ProcessManager>
Debug.Log("进入下一步子流程步骤");
return true;
}
}
else
{
int spCount = d_Scheme.CurrentProcess.subProcesses.Count;
@ -139,6 +149,9 @@ public class ProcessManager : BaseManager<ProcessManager>
if (spID <= d_Scheme.CurrentProcess.subProcesses[spCount - 1].id)
{
HandoverSubProcess(spID, 0);
int currentSubProcessStepsToolId = d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.toolsId[0];
GameManager.EventMgr.EventTrigger<int>(Enum_EventType.SwitchSubProcessStepToolID, currentSubProcessStepsToolId);
d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.toolsId.RemoveAt(0);
GameManager.EventMgr.EventTrigger<int>(Enum_EventType.SwitchSubProcessStep, d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStepId);
GameManager.EventMgr.EventTrigger<int>(Enum_EventType.SwitchSubProcess, d_Scheme.CurrentProcess.CurrentSubProcessId);
GameManager.UIMgr.ShowPanel<UI_TopTipPanel>(E_UI_Layer.System, (panel) =>
@ -155,6 +168,9 @@ public class ProcessManager : BaseManager<ProcessManager>
if (pID <= d_Scheme.processes[pCount - 1].id)
{
HandoverProcess(pID, 0, 0);
int currentSubProcessStepsToolId = d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.toolsId[0];
GameManager.EventMgr.EventTrigger<int>(Enum_EventType.SwitchSubProcessStepToolID, currentSubProcessStepsToolId);
d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.toolsId.RemoveAt(0);
GameManager.EventMgr.EventTrigger<int>(Enum_EventType.SwitchSubProcessStep, d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStepId);
GameManager.EventMgr.EventTrigger<int>(Enum_EventType.SwitchSubProcess, d_Scheme.CurrentProcess.CurrentSubProcessId);
GameManager.UIMgr.ShowPanel<UI_TopTipPanel>(E_UI_Layer.System, (panel) =>

View File

@ -8,21 +8,21 @@ public class Device_Mobile : MonoBehaviour
{
public int downIndex = 0;
public int modelID = 5005;
public List<int> subProcessStepID = new List<int>();
//public List<int> subProcessStepID = new List<int>();
private HighlightEffect _highlight;
private void Awake()
{
subProcessStepID = GameManager.DataMgr.GetSubProcessStepIDByToolID(modelID);
//subProcessStepID = GameManager.DataMgr.GetSubProcessStepIDByToolID(modelID);
_highlight = GetComponent<HighlightEffect>();
}
private void Start()
{
GameManager.EventMgr.AddEventListener<int>(Enum_EventType.SwitchSubProcessStep, SwitchSubProcess);
GameManager.EventMgr.AddEventListener<int>(Enum_EventType.SwitchSubProcessStepToolID, SwitchSubProcessStepToolID);
}
private void SwitchSubProcess(int arg0)
private void SwitchSubProcessStepToolID(int arg0)
{
if (subProcessStepID.Contains(arg0))
if (modelID == arg0)
{
_highlight.highlighted = true;
Debug.Log("ÎÒÓ¦¸ÃÌáʾ");
@ -36,15 +36,22 @@ public class Device_Mobile : MonoBehaviour
switch (downIndex)
{
case 0:
if (GameManager.ProcessMgr.CheckSubProcessSteps(GameManager.ProcessMgr.subProcessStepId, modelID))
{
_highlight.highlighted = false;
}
GameManager.UIMgr.ShowPanel<UI_ReceiveTaskPanel>(E_UI_Layer.Mid, (panel) =>
{
panel.Init(modelID);
});
downIndex++;
break;
case 1:
GameManager.UIMgr.ShowPanel<UI_SelectWorkTicketPanel>(E_UI_Layer.Mid, (panel) =>
{
panel.Init(modelID);
});
_highlight.highlighted = false;
downIndex = 0;
break;
//case 1:
// if (GameManager.ProcessMgr.CheckSubProcessSteps(4002))
// downIndex++;
// break;
//case 2:
// if (GameManager.ProcessMgr.CheckSubProcessSteps(4003))
// downIndex++;
@ -76,6 +83,6 @@ public class Device_Mobile : MonoBehaviour
private void OnDestroy()
{
GameManager.EventMgr.RemoveEventListener<int>(Enum_EventType.SwitchSubProcessStep, SwitchSubProcess);
GameManager.EventMgr.RemoveEventListener<int>(Enum_EventType.SwitchSubProcessStepToolID, SwitchSubProcessStepToolID);
}
}

View File

@ -3,13 +3,12 @@ using UnityEngine;
public class UI_LowTensionWorkTicketPanel : BasePanel
{
public void Init()
public int toolID;
public void Init(int toolID)
{
this.toolID = toolID;
}
void Start()
{
}
public override void ShowMe()
{

View File

@ -5,17 +5,18 @@ using UnityEngine.UI;
public class UI_ReceiveTaskPanel : BasePanel
{
public void Init()
public int toolID;
public void Init(int toolID)
{
this.toolID = toolID;
}
protected override void OnClick(string btnName)
{
switch (btnName)
{
case "Button_Accept":
Debug.Log("1");
GameManager.ProcessMgr.CheckSubProcessSteps(GameManager.ProcessMgr.subProcessStepId, toolID);
GameManager.UIMgr.HidePanel<UI_ReceiveTaskPanel>();
break;
}
}

View File

@ -7,9 +7,11 @@ using UnityEngine.UI;
public class UI_SelectWorkTicketPanel : BasePanel
{
private int number = 0;
public void Init()
public int toolID;
public void Init(int toolID)
{
number = 0;
this.toolID = toolID;
}
protected override void OnClick(string btnName)
@ -27,14 +29,23 @@ public class UI_SelectWorkTicketPanel : BasePanel
GetControl<Text>("Text_True").gameObject.SetActive(true);
if (GetControl<Toggle>("ImageF").isOn)
{
UIManager.Instance.HidePanel<UI_SelectWorkTicketPanel>();
GameManager.UIMgr.ShowPanel<UI_LowTensionWorkTicketPanel>(E_UI_Layer.Mid, (p) =>
{
p.Init(toolID);
});
Debug.Log("选择了正确选项F进行下一个面板");
}
else
{
if (number == 3)
{
Debug.Log("错误三次了,直接进行下一个面板");
UIManager.Instance.HidePanel<UI_SelectWorkTicketPanel>();
Debug.Log("错误三次了,直接进行下一个面板");
GameManager.UIMgr.ShowPanel<UI_LowTensionWorkTicketPanel>(E_UI_Layer.Mid, (p) =>
{
p.Init(toolID);
});
}
}
break;

View File

@ -37,4 +37,9 @@ public enum Enum_EventType
/// 切换子流程
/// </summary>
SwitchSubProcess,
/// <summary>
/// 切换目标工具ID
/// </summary>
SwitchSubProcessStepToolID,
}