This commit is contained in:
YangHua 2024-09-02 16:14:40 +08:00
commit 2273c14be7
6 changed files with 162 additions and 0 deletions

View File

@ -0,0 +1,27 @@
/// <summary>
/// 保存用户考试状态
/// </summary>
public class TB_UserExamStat
{
/// <summary>
///当前方案ID
/// </summary>
public int schemeID = -1;
/// <summary>
/// 当前流程Id
/// </summary>
public int processId = -1;
/// <summary>
/// 当前子流程Id
/// </summary>
public int subProcessId = -1;
/// <summary>
/// 当前子流程步骤Id
/// </summary>
public int subProcessStepId = -1;
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2e7cebc125e92494faf01d8936568a90
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -170,6 +170,7 @@ public class DataManager : BaseManager<DataManager>
D_SubProcessStep operation = new D_SubProcessStep(); D_SubProcessStep operation = new D_SubProcessStep();
operation.processId = process.id; operation.processId = process.id;
operation.schemeId = subject.id; operation.schemeId = subject.id;
operation.subProcessId = step.id;
operation.subProcessStepName = operationNode.Attributes["subProcessStepName"].Value; operation.subProcessStepName = operationNode.Attributes["subProcessStepName"].Value;
operation.triggerID = operationNode.Attributes["triggerID"].Value; operation.triggerID = operationNode.Attributes["triggerID"].Value;
operation.tipTitle = operationNode.Attributes["tipTitle"].Value; operation.tipTitle = operationNode.Attributes["tipTitle"].Value;

View File

@ -97,6 +97,11 @@ public class GameManager : SingletonAutoMono<GameManager>
/// </summary> /// </summary>
public static ToolAndmaterialMgr ToolAndmaterialMgr { get; private set; } public static ToolAndmaterialMgr ToolAndmaterialMgr { get; private set; }
/// <summary>
/// 数据重连管理类
/// </summary>
public static ReconnectMgr ReconnectMgr { get; private set; }
#endregion #endregion
/// <summary> /// <summary>
@ -121,6 +126,7 @@ public class GameManager : SingletonAutoMono<GameManager>
RunModelMgr = RunModelMgr.Instance; RunModelMgr = RunModelMgr.Instance;
ToolAndmaterialMgr = ToolAndmaterialMgr.Instance; ToolAndmaterialMgr = ToolAndmaterialMgr.Instance;
PacksackBagMgr = PacksackBagMgr.Instance; PacksackBagMgr = PacksackBagMgr.Instance;
//ReconnectMgr = ReconnectMgr.Instance;//重连管理初始化
DataMgr.Init(); DataMgr.Init();
InitData(); InitData();

View File

@ -0,0 +1,106 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.IO;
using LitJson;
/// <summary>
/// 断线重连管理
/// </summary>
public class ReconnectMgr : SingletonMono<ReconnectMgr>
{
[HideInInspector]
public float recordDuration = -1;
private float recordCountdown = -1;
private TB_UserExamStat UserExamStat = new TB_UserExamStat();
private string localStatPath = "";
private string localStatFileName = "realtimeStat.json";
/// <summary>
/// 初始化函数,记录时间间隔
/// </summary>
public void Init( )
{
localStatPath = Application.streamingAssetsPath + "/" + localStatFileName;
//if (File.Exists( localStatPath ))//启动后检查有没有之前的遗留
//{
// File.Delete( localStatPath );
//}
}
ReconnectMgr()//构造函数
{
Init( );
}
/// <summary>
/// 记录用户状态
/// </summary>
public void RealtimeStatWriter()
{
//记录步骤相关各项信息
UserExamStat.schemeID = ProcessManager.Instance.schemeID;
UserExamStat.processId = ProcessManager.Instance.processId;
UserExamStat.subProcessId = ProcessManager.Instance.subProcessId;
UserExamStat.subProcessStepId = ProcessManager.Instance.subProcessStepId;
string UserJson = JsonConvert.SerializeObject(UserExamStat, Formatting.Indented);
Debug.Log("用户当前状态" + UserJson);
File.WriteAllText(localStatPath, UserJson);
}
/// <summary>
/// 读取用户状态(先使用同步,后用异步)
/// </summary>
public bool RealtimeStatReader()
{
if (File.Exists(localStatPath))
{
try
{
StreamReader sr = new StreamReader(localStatPath);
string user_last_stat = sr.ReadToEnd();
sr.Close();
UserExamStat = JsonMapper.ToObject<TB_UserExamStat>(user_last_stat);
Debug.Log("用户当前schemeID:" + UserExamStat.schemeID);
return true;
}
catch (System.Exception e)
{
Debug.LogError(e.ToString());
return false;
}
}
else {
return false;
}
}
// Start is called before the first frame update
//void Start()
//{
//}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.S))//测试用,按S读取状态保存
{
RealtimeStatWriter();
}
else if(Input.GetKeyDown(KeyCode.R))
{
RealtimeStatReader();
ProcessManager.Instance.HandoverProcess(UserExamStat.processId, UserExamStat.subProcessId, UserExamStat.subProcessStepId);
StepStateControl.instance.InvokeInitStepState(GameManager.Instance.systemId, GameManager.ProcessMgr.d_Scheme.id, UserExamStat.subProcessId);
GameManager.EventMgr.EventTrigger<int>(Enum_EventType.SwitchSubProcess, UserExamStat.subProcessId);
//Debug.LogError(ProcessManager.Instance.subProcessStepTriggerID);
GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, ProcessManager.Instance.subProcessStepTriggerID);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2b0607653b5fed643b96912f73248d7e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: