修复bug

This commit is contained in:
YangHua 2024-09-08 00:13:02 +08:00
parent 6ccdb07928
commit a0b04f7e3b
19 changed files with 203 additions and 108 deletions

View File

@ -3077,6 +3077,7 @@ MonoBehaviour:
animatorParameters: animatorParameters:
target: {fileID: 1501092963} target: {fileID: 1501092963}
minDistance: 2 minDistance: 2
isClose: 0
--- !u!136 &890581131 --- !u!136 &890581131
CapsuleCollider: CapsuleCollider:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -4753,6 +4754,7 @@ MonoBehaviour:
animatorParameters: NPCState animatorParameters: NPCState
target: {fileID: 1501092963} target: {fileID: 1501092963}
minDistance: 2 minDistance: 2
isClose: 0
--- !u!4 &1198127457 --- !u!4 &1198127457
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -6310,6 +6312,7 @@ MonoBehaviour:
spawnToolPos: {fileID: 1927580343} spawnToolPos: {fileID: 1927580343}
tMDTips: {fileID: 1180096483} tMDTips: {fileID: 1180096483}
triggerName: "\u6536\u56DE\u5DE5\u5177" triggerName: "\u6536\u56DE\u5DE5\u5177"
npcCustomController: {fileID: 890581130}
device_Control: {fileID: 1723332379} device_Control: {fileID: 1723332379}
--- !u!4 &2109812127 --- !u!4 &2109812127
Transform: Transform:

View File

@ -44,7 +44,7 @@ public class StepState_1002 : StepState
/// <param name="num"></param> /// <param name="num"></param>
public override void SetStepState(int num, int lastNum) public override void SetStepState(int num, int lastNum)
{ {
Debug.Log("切换步骤"+num); Debug.Log("切换步骤" + num);
//删除手里的东西 //删除手里的东西
LiveSceneManager.Instance?.OnCheckSubProcess(); LiveSceneManager.Instance?.OnCheckSubProcess();
@ -52,20 +52,24 @@ public class StepState_1002 : StepState
{ {
//查看任务单 //查看任务单
OfficeManager.Instance.mobileController.downIndex = 0; OfficeManager.Instance.mobileController.downIndex = 0;
PacksackBagMgr.Instance.ClearAllData();
} }
else if (num == 2) else if (num == 2)
{ {
//工作预约 //工作预约
OfficeManager.Instance.mobileController.downIndex = 1; OfficeManager.Instance.mobileController.downIndex = 1;
PacksackBagMgr.Instance.ClearAllData();
} }
else if (num == 3) else if (num == 3)
{ {
//办理工作票 //办理工作票
OfficeManager.Instance.mobileController.downIndex = 2; OfficeManager.Instance.mobileController.downIndex = 2;
PacksackBagMgr.Instance.ClearAllData();
} }
else if (num == 4) else if (num == 4)
{ {
//填写装拆工单 //填写装拆工单
PacksackBagMgr.Instance.ClearAllData();
} }
else if (num == 5) else if (num == 5)
{ {
@ -74,7 +78,7 @@ public class StepState_1002 : StepState
//清空背包 //清空背包
PacksackBagMgr.Instance.ClearAllToolAndDiveceAndMaterial(); PacksackBagMgr.Instance.ClearAllToolAndDiveceAndMaterial();
TooRoomMannger.Instance.CheckWearByWearDic();
//完成第一步点击去工具间 //完成第一步点击去工具间
if (num == lastNum) if (num == lastNum)
{ {
@ -93,8 +97,8 @@ public class StepState_1002 : StepState
//选取工器具 //选取工器具
//服装拿到背包 //服装拿到背包
List<Tool_SelectComponent> items=ToolAndmaterialMgr.Instance.GetItemInfoByName(new List<string> { "国网安全帽", "工作服", "绝缘手套", "绝缘靴" }); List<Tool_SelectComponent> items = ToolAndmaterialMgr.Instance.GetItemInfoByName(new List<string> { "国网安全帽", "工作服", "绝缘手套", "绝缘靴" });
items.ForEach(item => items.ForEach(item =>
{ {
PacksackBagMgr.Instance.AddOneToolOrMater(item.itemInfo); PacksackBagMgr.Instance.AddOneToolOrMater(item.itemInfo);
Destroy(item.gameObject); Destroy(item.gameObject);
@ -129,9 +133,9 @@ public class StepState_1002 : StepState
//清空背包数据 //清空背包数据
PacksackBagMgr.Instance.ClearAllData(); PacksackBagMgr.Instance.ClearAllData();
//生成服装 //生成服装
List<ItemInfo> items=ToolAndmaterialMgr.Instance.CreateItemInfoByName(new List<string> { "国网安全帽", "工作服", "绝缘手套", "绝缘靴" }); List<ItemInfo> items = ToolAndmaterialMgr.Instance.CreateItemInfoByName(new List<string> { "国网安全帽", "工作服", "绝缘手套", "绝缘靴" });
//放入背包 //放入背包
items.ForEach(item => items.ForEach(item =>
{ {
PacksackBagMgr.Instance.AddOneToolOrMater(item); PacksackBagMgr.Instance.AddOneToolOrMater(item);
//穿上 //穿上
@ -139,7 +143,7 @@ public class StepState_1002 : StepState
}); });
//生成工具 //生成工具
List<ItemInfo> items2 = ToolAndmaterialMgr.Instance.CreateItemInfoByName(new List<string> { "剥线钳", "绝缘螺丝刀", "验电笔", "工作证", "盒装封印", "绝缘胶带", "三相四线电能表" }); List<ItemInfo> items2 = ToolAndmaterialMgr.Instance.CreateItemInfoByName(new List<string> { "剥线钳", "绝缘螺丝刀", "验电笔", "工作证", "盒装封印", "绝缘胶带", "三相四线电能表" });
items2.ForEach(item => items2.ForEach(item =>
{ {
PacksackBagMgr.Instance.AddOneToolOrMater(item); PacksackBagMgr.Instance.AddOneToolOrMater(item);
}); });
@ -150,9 +154,9 @@ public class StepState_1002 : StepState
device_Control.Init(); device_Control.Init();
//还原npc对话 //还原npc对话
GameObject.FindObjectsOfType<NPCController>().ToList().ForEach(a => GameObject.FindObjectsOfType<NPCController>().ToList().ForEach(a =>
{ {
a.speackIndex = 0; a.speackIndex = 0;
a.spriteRenderer.gameObject.SetActive(true); a.spriteRenderer.gameObject.SetActive(true);
}); });
} }
@ -161,7 +165,7 @@ public class StepState_1002 : StepState
//班前会 //班前会
GameObject.FindObjectsOfType<NPCController>().ToList().Find(a => a.triggerName == "NPC客户").spriteRenderer.gameObject.SetActive(false); GameObject.FindObjectsOfType<NPCController>().ToList().Find(a => a.triggerName == "NPC客户").spriteRenderer.gameObject.SetActive(false);
} }
else if (num == 9) else if (num == 9)
{ {
//接线检查 //接线检查
@ -171,12 +175,12 @@ public class StepState_1002 : StepState
//还原npc负责人 //还原npc负责人
GameObject.FindObjectsOfType<NPCController>().ToList().ForEach(a => GameObject.FindObjectsOfType<NPCController>().ToList().ForEach(a =>
{ {
if(a.triggerName == "NPC负责人") if (a.triggerName == "NPC负责人")
a.speackIndex = 1; a.speackIndex = 1;
a.spriteRenderer.gameObject.SetActive(false); a.spriteRenderer.gameObject.SetActive(false);
}); });
} }
else if(num == 10) else if (num == 10)
{ {
//断开电源并验电 //断开电源并验电
@ -200,13 +204,13 @@ public class StepState_1002 : StepState
//电源断开了 //电源断开了
device_Control.inSwitch.CloseState(); device_Control.inSwitch.CloseState();
} }
else if(num== 12) else if (num == 12)
{ {
//拆除电能计量装置 //拆除电能计量装置
//铭牌已读取 //铭牌已读取
device_Control.meteringDevice.namePlate.isChecked = true; device_Control.meteringDevice.namePlate.isChecked = true;
} }
else if( num == 13) else if (num == 13)
{ {
//安装电能表 //安装电能表
@ -221,7 +225,7 @@ public class StepState_1002 : StepState
device_Control.jieXian_lines.ForEach(screw => device_Control.jieXian_lines.ForEach(screw =>
{ {
screw.isConnected = false; screw.isConnected = false;
screw.transform.localPosition = new Vector3(screw.transform.localPosition.x, screw.InstallPosY-2, screw.transform.localPosition.z); screw.transform.localPosition = new Vector3(screw.transform.localPosition.x, screw.InstallPosY - 2, screw.transform.localPosition.z);
}); });
//刷新带电状态 //刷新带电状态
device_Control.CheckHasElectricity(); device_Control.CheckHasElectricity();
@ -250,7 +254,7 @@ public class StepState_1002 : StepState
//刷新带电状态 //刷新带电状态
device_Control.CheckHasElectricity(); device_Control.CheckHasElectricity();
} }
else if(num== 15) else if (num == 15)
{ {
//现场通电及检查 //现场通电及检查
@ -258,7 +262,7 @@ public class StepState_1002 : StepState
device_Control.check_JieXian.isChecked = true; device_Control.check_JieXian.isChecked = true;
device_Control.check_JieXian.GetComponent<BoxCollider>().enabled = false; device_Control.check_JieXian.GetComponent<BoxCollider>().enabled = false;
} }
else if(num== 16) else if (num == 16)
{ {
//实施封印 //实施封印
@ -267,13 +271,13 @@ public class StepState_1002 : StepState
//盖子盖上 //盖子盖上
device_Control.meteringDevice.CoverInstallState(); device_Control.meteringDevice.CoverInstallState();
} }
else if(num== 17) else if (num == 17)
{ {
//填写告知单 //填写告知单
device_Control.meteringDevice.cover.cover_seal_Left.Install(); device_Control.meteringDevice.cover.cover_seal_Left.Install();
device_Control.meteringDevice.cover.cover_seal_Right.Install(); device_Control.meteringDevice.cover.cover_seal_Right.Install();
} }
else if(num== 18) else if (num == 18)
{ {
//清理现场 //清理现场
} }

View File

@ -173,7 +173,7 @@ public class GameManager : SingletonAutoMono<GameManager>
}); });
} }
/// <summary> /// <summary>
///返回模式选择界面 ///首次加载和返回模式选择界面
/// </summary> /// </summary>
/// <param name="isReset"></param> /// <param name="isReset"></param>
public void ShowUIPanelAndLoadScene(bool isReset = false) public void ShowUIPanelAndLoadScene(bool isReset = false)
@ -196,7 +196,7 @@ public class GameManager : SingletonAutoMono<GameManager>
} }
/// <summary> /// <summary>
/// 练习 /// 练习,重新练习会调用
/// </summary> /// </summary>
public void Practice() public void Practice()
{ {
@ -206,11 +206,6 @@ public class GameManager : SingletonAutoMono<GameManager>
ProcessMgr.Init(RunModelMgr.schemeID, RunModelMgr.ModeType); ProcessMgr.Init(RunModelMgr.schemeID, RunModelMgr.ModeType);
UIMgr.ShowPanel<UI_LoadingPanel>(E_UI_Layer.System, (panel) => UIMgr.ShowPanel<UI_LoadingPanel>(E_UI_Layer.System, (panel) =>
{ {
UIMgr.ShowPanel<UI_MainTitlePanel>(E_UI_Layer.Bot, (panel) =>
{
panel.Init();
});
panel.Init(); panel.Init();
EventMgr.EventTrigger<float>(Enum_EventType.UpdateProgress, 0.1f); EventMgr.EventTrigger<float>(Enum_EventType.UpdateProgress, 0.1f);
ScenesMgr.LoadSceneAsyn($"{systemId}_{RunModelMgr.schemeID}_03_OfficeScene", () => ScenesMgr.LoadSceneAsyn($"{systemId}_{RunModelMgr.schemeID}_03_OfficeScene", () =>
@ -235,8 +230,10 @@ public class GameManager : SingletonAutoMono<GameManager>
UIMgr.HidePanel<UI_TaskListPanel>(); UIMgr.HidePanel<UI_TaskListPanel>();
if (UIMgr.GetPanel<UI_MenuBar>()) if (UIMgr.GetPanel<UI_MenuBar>())
UIMgr.HidePanel<UI_MenuBar>(); UIMgr.HidePanel<UI_MenuBar>();
UIMgr.GetPanel<UI_MainTitlePanel>().ResetByModeType();
PacksackBagMgr.ClearAllData(); PacksackBagMgr.ClearAllData();
EventMgr.Clear(); EventMgr.Clear();
UIMgr.GetPanel<UI_MainTitlePanel>().ShowMe();
ScoreManager.instance.ReInit(); ScoreManager.instance.ReInit();
RunModelMgr.startTime = DateTime.Now; RunModelMgr.startTime = DateTime.Now;
Debug.Log("重置开始时间"); Debug.Log("重置开始时间");

View File

@ -12,6 +12,7 @@ public class LiveSceneManager : SingletonMono<LiveSceneManager>
public Transform spawnToolPos; public Transform spawnToolPos;
public Transform tMDTips; public Transform tMDTips;
public string triggerName; public string triggerName;
public NPCController npcCustomController;
//场景中设备控制脚本 //场景中设备控制脚本
public Device_Control device_Control; public Device_Control device_Control;
@ -38,6 +39,7 @@ public class LiveSceneManager : SingletonMono<LiveSceneManager>
public void SetSpawnToolInfo(GameObject tool) public void SetSpawnToolInfo(GameObject tool)
{ {
if (tool == null) return; if (tool == null) return;
currentTool = tool; currentTool = tool;
currentTool.transform.parent = Camera.main.transform; currentTool.transform.parent = Camera.main.transform;
currentTool.transform.localPosition = spawnToolPos.localPosition; currentTool.transform.localPosition = spawnToolPos.localPosition;
@ -57,12 +59,6 @@ public class LiveSceneManager : SingletonMono<LiveSceneManager>
if (currentTool.GetComponent<Device_Base>()) if (currentTool.GetComponent<Device_Base>())
{ {
currentTool.GetComponent<Device_Base>().SetHeadPosAndEulerang(currentTool.transform.localPosition, currentTool.transform.localEulerAngles); currentTool.GetComponent<Device_Base>().SetHeadPosAndEulerang(currentTool.transform.localPosition, currentTool.transform.localEulerAngles);
currentTool.GetComponent<Device_Base>().AddStartAction(() =>
{
});
currentTool.GetComponent<Device_Base>().AddEndAction(() =>
{
});
} }
tMDTips.gameObject.SetActive(true); tMDTips.gameObject.SetActive(true);
if (currentTool.name.Equals("工作证")) if (currentTool.name.Equals("工作证"))

View File

@ -76,10 +76,10 @@ public class OfficeManager : SingletonMono<OfficeManager>
if (!GameManager.UIMgr.GetPanel<UI_MenuBar>()) if (!GameManager.UIMgr.GetPanel<UI_MenuBar>())
{ {
GameManager.UIMgr.ShowPanel<UI_MenuBar>(E_UI_Layer.Mid, (panel) => GameManager.UIMgr.ShowPanel<UI_MenuBar>(E_UI_Layer.Mid, (panel) =>
{ {
panel.Init(); panel.Init();
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchScene, GameManager.RunModelMgr.SceneType); GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchScene, GameManager.RunModelMgr.SceneType);
}); });
} }
firstPersonController.gameObject.SetActive(true); firstPersonController.gameObject.SetActive(true);
} }

View File

@ -158,7 +158,7 @@ public class ProcessManager : BaseManager<ProcessManager>
{ {
Debug.Log($"<color=red>完成所有</color>"); Debug.Log($"<color=red>完成所有</color>");
//HQB 20240828完成后展示学习完成Tips //HQB 20240828完成后展示学习完成Tips
GameManager.UIMgr.ShowPanel<UI_TipsForPracticePanel>(E_UI_Layer.System); GameManager.UIMgr.ShowPanel<UI_TipsForPracticePanel>(E_UI_Layer.Mid);
return 0; return 0;
} }

View File

@ -30,7 +30,31 @@ public class TooRoomMannger : SingletonMono<TooRoomMannger>
tmd.GetInfo(); tmd.GetInfo();
} }
RemoveRepeat(); RemoveRepeat();
CheckWearByWearDic();
} }
/// <summary>
/// 通过wearDic数据检测是否穿衣
/// </summary>
public void CheckWearByWearDic()
{
var wearData = GameManager.PacksackBagMgr.wearDic;
if (wearData.Count > 0)
{
foreach (var item in wearData)
{
Wear(item.Key, true);
}
}
else
{
Wear("国网安全帽", false);
Wear("工作服", false);
Wear("绝缘手套", false);
Wear("绝缘靴", false);
}
}
public void SwitchFirstPersonControllerMove(bool isMove) public void SwitchFirstPersonControllerMove(bool isMove)
{ {
firstPersonController.playerCanMove = isMove; firstPersonController.playerCanMove = isMove;
@ -92,6 +116,14 @@ public class TooRoomMannger : SingletonMono<TooRoomMannger>
} }
} }
//public void ResetManWear()
//{
// headSlot.GetComponent<SkinnedMeshRenderer>().material = _cancel.SingleOrDefault(s => s.name == "国网安全帽");
// bodySlot.GetComponent<SkinnedMeshRenderer>().material = _cancel.SingleOrDefault(s => s.name == "工作服");
// handSlot.GetComponent<SkinnedMeshRenderer>().material = _cancel.SingleOrDefault(s => s.name == "绝缘手套");
// shoesSlot.GetComponent<MeshRenderer>().material = _cancel.SingleOrDefault(s => s.name == "绝缘靴");
//}
private void OnDestroy() private void OnDestroy()
{ {
GameManager.EventMgr.RemoveEventListener<bool>(Enum_EventType.PlayerCanMove, SwitchFirstPersonControllerMove); GameManager.EventMgr.RemoveEventListener<bool>(Enum_EventType.PlayerCanMove, SwitchFirstPersonControllerMove);

View File

@ -24,6 +24,7 @@ public class MirrorController : PermanentTriggerBase
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(triggerName, true) == 0) if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(triggerName, true) == 0)
{ {
GameManager.UIMgr.ShowPanel<UI_CheckMyselfPanel>(E_UI_Layer.Mid); GameManager.UIMgr.ShowPanel<UI_CheckMyselfPanel>(E_UI_Layer.Mid);
_highlight.SetHighlighted(false);
} }
} }

View File

@ -15,7 +15,7 @@ public class NPCController : PermanentTriggerBase
/// <summary> /// <summary>
/// 是否靠近 /// 是否靠近
/// </summary> /// </summary>
private bool isClose = false; public bool isClose = false;
private void Update() private void Update()
{ {

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using TMPro; using TMPro;
using System;
public class UI_SubProcessItem : BaseItem public class UI_SubProcessItem : BaseItem
{ {
@ -10,6 +11,7 @@ public class UI_SubProcessItem : BaseItem
public int subProcessID; public int subProcessID;
public int subProcessStepID; public int subProcessStepID;
public string warnnigTips; public string warnnigTips;
private Action cancelCallback;
public void Init(D_SubProcess d_SubProcess, int subProcessID) public void Init(D_SubProcess d_SubProcess, int subProcessID)
{ {
@ -41,17 +43,20 @@ public class UI_SubProcessItem : BaseItem
GetControl<Image>("learningTips").gameObject.SetActive(false); GetControl<Image>("learningTips").gameObject.SetActive(false);
} }
/// <summary> /// <summary>
/// /// 根据传进来得状态去切换重新学习或者切换步骤
/// </summary> /// </summary>
/// <param name="isReset"></param> /// <param name="isReset">true 是否重新学习 ,false 当前步骤还没有学完,确定要切换吗?</param>
/// <param name="state">0 未完成所有步骤跳转1 完成所有步骤跳转</param> /// <param name="state">0 未完成所有步骤跳转1 完成所有步骤跳转</param>
public void OnResetClick(bool isReset, int state) /// cancelCallback :当完成所有得步骤之后,在弹出得界面上选择重新学习之后,弹出确认框,如果选择取消就需要该方法第三个参数入参
public void OnResetClick(bool isReset, int state, Action _cancelCallback = null)
{ {
warnnigTips = isReset ? "是否重新学习?" : "当前步骤还没有学完,确定要切换吗?"; warnnigTips = isReset ? "是否重新学习?" : "当前步骤还没有学完,确定要切换吗?";
if (state == 0) if (state == 0)
OnClick("subProcessBtn"); OnClick("subProcessBtn");
else else
CheckSubProcess(); CheckSubProcess();
if (_cancelCallback != null)
cancelCallback += _cancelCallback;
} }
protected override void OnClick(string btnName) protected override void OnClick(string btnName)
{ {
@ -68,6 +73,9 @@ public class UI_SubProcessItem : BaseItem
break; break;
} }
} }
/// <summary>
/// 是否重置学习或者跳步骤
/// </summary>
private void CheckSubProcess() private void CheckSubProcess()
{ {
GameManager.UIMgr.ShowPanel<UI_MessagePanel>(E_UI_Layer.System, (p) => GameManager.UIMgr.ShowPanel<UI_MessagePanel>(E_UI_Layer.System, (p) =>
@ -81,6 +89,9 @@ public class UI_SubProcessItem : BaseItem
GameManager.EventMgr.EventTrigger<int>(Enum_EventType.SwitchSubProcess, subProcessID); GameManager.EventMgr.EventTrigger<int>(Enum_EventType.SwitchSubProcess, subProcessID);
//通知物体高亮 //通知物体高亮
GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, ProcessManager.Instance.subProcessStepTriggerID); GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, ProcessManager.Instance.subProcessStepTriggerID);
}, () =>
{
cancelCallback?.Invoke();
}); });
}); });
} }

View File

@ -64,6 +64,18 @@ public class UI_ToolOrMaterialsOrDeviceItem : BaseItem
break; break;
case "iconBtn": case "iconBtn":
bool isWorkCard = currentItem.toolName.Equals("¹¤×÷Ö¤") ? false : true; bool isWorkCard = currentItem.toolName.Equals("¹¤×÷Ö¤") ? false : true;
if (GameManager.RunModelMgr.ModeType != E_ModeType.Study)
{
if (currentItem.toolName.Equals("工作证") && !LiveSceneManager.Instance.npcCustomController.isClose)
{
GameManager.UIMgr.ShowPanel<UI_MiddleTipPanel>(E_UI_Layer.System, (p) =>
{
p.Init($"提示:请靠近交互对象");
});
GameManager.EventMgr.EventTrigger<GameObject>(Enum_EventType.TakeOutAndRetrievingTheTools, null);
return;
}
}
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(currentItem.toolName, isWorkCard) == 0) if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(currentItem.toolName, isWorkCard) == 0)
{ {
GameManager.UIMgr.HidePanel<UI_ToolAndMaterialPanel>(); GameManager.UIMgr.HidePanel<UI_ToolAndMaterialPanel>();

View File

@ -16,7 +16,7 @@ public class UI_MainTitlePanel : BasePanel
internal void Init() internal void Init()
{ {
SwitchTitleImg(); SwitchTitleImg();
SwitchMode(); //SwitchMode();
SwitchUserName(); SwitchUserName();
} }
@ -27,14 +27,18 @@ public class UI_MainTitlePanel : BasePanel
public override void ShowMe() public override void ShowMe()
{ {
GameManager.EventMgr.AddEventListener(Enum_EventType.SwitchMode, SwitchMode); GameManager.EventMgr.AddEventListener(Enum_EventType.SwitchMode, SwitchMode);
GameManager.EventMgr.AddEventListener(Enum_EventType.InitializationUI, InitializationUI);
} }
/// <summary> /// <summary>
/// 隐藏 /// 隐藏
/// </summary> /// </summary>
public override void HideMe() public override void HideMe()
{ {
GameManager.EventMgr.RemoveEventListener(Enum_EventType.SwitchMode, SwitchMode); GameManager.EventMgr.RemoveEventListener(Enum_EventType.SwitchMode, SwitchMode);
GameManager.EventMgr.RemoveEventListener(Enum_EventType.InitializationUI, InitializationUI);
} }
/// <summary> /// <summary>
@ -58,14 +62,26 @@ public class UI_MainTitlePanel : BasePanel
mode = "考试模式"; mode = "考试模式";
break; break;
} }
GetControl<Button>("upExamBtn").gameObject.SetActive(mode == "考试模式"); ///模式显示父物体
GetControl<Button>("submitBtn").gameObject.SetActive(mode == "练习模式");
GetControl<Image>("timeText").gameObject.SetActive(mode == "考试模式");
GetControl<Image>("modelText").gameObject.SetActive(mode != ""); GetControl<Image>("modelText").gameObject.SetActive(mode != "");
//GetControl<Image>("userName").gameObject.SetActive(mode != string.Empty && mode != "学习模式"); //GetControl<Image>("userName").gameObject.SetActive(mode != string.Empty && mode != "学习模式");
///模式显示text
GetControl<TextMeshProUGUI>("modelText (TMP)").text = mode; GetControl<TextMeshProUGUI>("modelText (TMP)").text = mode;
}
private void InitializationUI()
{
GetControl<Button>("upExamBtn").gameObject.SetActive(RunModelMgr.Instance.ModeType == E_ModeType.Exam);
GetControl<Button>("submitBtn").gameObject.SetActive(RunModelMgr.Instance.ModeType == E_ModeType.Practice);
//GetControl<Image>("timeText").gameObject.SetActive(RunModelMgr.Instance.ModeType == E_ModeType.Exam);
Debug.LogError(RunModelMgr.Instance.ModeType.ToString());
}
public void ResetByModeType()
{
GetControl<Button>("upExamBtn").gameObject.SetActive(false);
GetControl<Button>("submitBtn").gameObject.SetActive(false);
//GetControl<Button>("timeText").gameObject.SetActive(false);
} }
@ -97,14 +113,16 @@ public class UI_MainTitlePanel : BasePanel
GameManager.UIMgr.ShowPanel<UI_MessagePanel>(E_UI_Layer.System, GameManager.UIMgr.ShowPanel<UI_MessagePanel>(E_UI_Layer.System,
(panel) => (panel) =>
{ {
panel.Init("提示", "确定退出应用吗?", E_MessageType.Error, () => panel.Init("提示", "确定退出应用吗?", E_MessageType.Error,
{ () =>
Debug.Log("退出"); {
Application.Quit(); Debug.Log("退出");
}, () => Application.Quit();
{ },
Debug.Log("取消"); () =>
}); {
Debug.Log("取消");
});
}); });
break; break;
case "upExamBtn": case "upExamBtn":

View File

@ -73,10 +73,10 @@ public class UI_SelectDevicePanel : BasePanel
GameManager.ProcessMgr.Init(GameManager.RunModelMgr.schemeID, GameManager.RunModelMgr.ModeType); GameManager.ProcessMgr.Init(GameManager.RunModelMgr.schemeID, GameManager.RunModelMgr.ModeType);
GameManager.UIMgr.ShowPanel<UI_LoadingPanel>(E_UI_Layer.System, (panel) => GameManager.UIMgr.ShowPanel<UI_LoadingPanel>(E_UI_Layer.System, (panel) =>
{ {
GameManager.UIMgr.ShowPanel<UI_MainTitlePanel>(E_UI_Layer.Bot, (panel) => //GameManager.UIMgr.ShowPanel<UI_MainTitlePanel>(E_UI_Layer.Bot, (panel) =>
{ //{
panel.Init(); // panel.Init();
}); //});
panel.Init(); panel.Init();
GameManager.EventMgr.EventTrigger<float>(Enum_EventType.UpdateProgress, 0.1f); GameManager.EventMgr.EventTrigger<float>(Enum_EventType.UpdateProgress, 0.1f);

View File

@ -7,8 +7,12 @@ public class UI_SelectModePanel : BasePanel
/// <summary> /// <summary>
/// 初始化 /// 初始化
/// </summary> /// </summary>
public void Init() public void Init()
{ {
}
public override void ShowMe()
{
base.ShowMe();
GameManager.RunModelMgr.ModeType = E_ModeType.None; GameManager.RunModelMgr.ModeType = E_ModeType.None;
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchMode); GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchMode);
} }
@ -19,7 +23,7 @@ public class UI_SelectModePanel : BasePanel
/// <param name="btnName"></param> /// <param name="btnName"></param>
protected override void OnClick(string btnName) protected override void OnClick(string btnName)
{ {
var modeType = E_ModeType.None; var modeType = E_ModeType.None;
switch (btnName) switch (btnName)
{ {
case "StudyModelBtn": case "StudyModelBtn":
@ -32,9 +36,10 @@ public class UI_SelectModePanel : BasePanel
GameManager.RunModelMgr.ModeType = modeType; GameManager.RunModelMgr.ModeType = modeType;
GameManager.UIMgr.ShowPanel<UI_SelectDevicePanel>(E_UI_Layer.Mid, (panel) => GameManager.UIMgr.ShowPanel<UI_SelectDevicePanel>(E_UI_Layer.Mid, (panel) =>
{ {
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchMode);
panel.Init(); panel.Init();
GameManager.UIMgr.HidePanel<UI_SelectModePanel>();//TODO 框架中设计一个SelfClose()感觉更好 GameManager.UIMgr.HidePanel<UI_SelectModePanel>();//TODO 框架中设计一个SelfClose()感觉更好
}); });
} }
} }

View File

@ -74,10 +74,10 @@ public class UI_SelectWorkTicketPanel : BasePanel
GameManager.UIMgr.ShowPanel<UI_LowTensionWorkTicketPanel>(E_UI_Layer.Mid); GameManager.UIMgr.ShowPanel<UI_LowTensionWorkTicketPanel>(E_UI_Layer.Mid);
GameManager.UIMgr.HidePanel<UI_SelectWorkTicketPanel>(); GameManager.UIMgr.HidePanel<UI_SelectWorkTicketPanel>();
} }
else //else
{ //{
GetControl<Text>("Text_True").gameObject.SetActive(true); // GetControl<Text>("Text_True").gameObject.SetActive(true);
} //}
break; break;
case E_ModeType.Exam: case E_ModeType.Exam:
if (GetControl<Toggle>("ImageF").isOn) if (GetControl<Toggle>("ImageF").isOn)
@ -86,10 +86,10 @@ public class UI_SelectWorkTicketPanel : BasePanel
GameManager.UIMgr.ShowPanel<UI_LowTensionWorkTicketPanel>(E_UI_Layer.Mid); GameManager.UIMgr.ShowPanel<UI_LowTensionWorkTicketPanel>(E_UI_Layer.Mid);
GameManager.UIMgr.HidePanel<UI_SelectWorkTicketPanel>(); GameManager.UIMgr.HidePanel<UI_SelectWorkTicketPanel>();
} }
else //else
{ //{
GetControl<Text>("Text_True").gameObject.SetActive(true); // GetControl<Text>("Text_True").gameObject.SetActive(true);
} //}
break; break;
} }
break; break;

View File

@ -4,6 +4,7 @@ using DG.Tweening;
using UnityEngine.UI; using UnityEngine.UI;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
using System.Collections.Generic; using System.Collections.Generic;
using System;
public class UI_TaskListPanel : BasePanel public class UI_TaskListPanel : BasePanel
{ {
@ -46,21 +47,34 @@ public class UI_TaskListPanel : BasePanel
} }
} }
/// <summary> /// <summary>
/// 点击第一个 /// 重置学习调用
/// </summary> /// </summary>
/// <param name="state">0 未完成所有步骤跳转1 完成所有步骤跳转</param> /// <param name="state">0 未完成所有步骤跳转1 完成所有步骤跳转</param>
public void ClickFirstSubProcessesItem(int state) public void ClickFirstSubProcessesItem(int state, Action _cancelCallback = null)
{ {
if (_content.GetChild(0).GetComponent<UI_SubProcessItem>()) if (_content.GetChild(0).GetComponent<UI_SubProcessItem>())
{ {
_content.GetChild(0).GetComponent<UI_SubProcessItem>().OnResetClick(true, state); _content.GetChild(0).GetComponent<UI_SubProcessItem>().OnResetClick(true, state, state == 1 ? _cancelCallback : null);
return; return;
} }
if (_content.GetChild(1).GetComponent<UI_SubProcessItem>()) if (_content.GetChild(1).GetComponent<UI_SubProcessItem>())
{ {
_content.GetChild(1).GetComponent<UI_SubProcessItem>().OnResetClick(true, state); _content.GetChild(1).GetComponent<UI_SubProcessItem>().OnResetClick(true, state, state == 1 ? _cancelCallback : null);
} }
} }
/// <summary>
/// 重置练习调用
/// </summary>
public void ResetPractice()
{
GameManager.UIMgr.ShowPanel<UI_MessagePanel>(E_UI_Layer.System, (p) =>
{
p.Init("提示", "是否重新学习?", E_MessageType.Error, () =>
{
GameManager.Instance.Practice();
});
});
}
protected override void OnClick(string btnName) protected override void OnClick(string btnName)
{ {
@ -74,7 +88,7 @@ public class UI_TaskListPanel : BasePanel
ClickFirstSubProcessesItem(0); ClickFirstSubProcessesItem(0);
break; break;
case "RePracticeBtn": case "RePracticeBtn":
GameManager.Instance.Practice(); ResetPractice();
break; break;
default: default:
break; break;

View File

@ -15,6 +15,7 @@ public class UI_TipsForPracticePanel : BasePanel
} }
protected override void OnClick(string btnName) protected override void OnClick(string btnName)
{ {
GameManager.UIMgr.HidePanel<UI_TipsForPracticePanel>();
switch (btnName) switch (btnName)
{ {
case "StartPractice": case "StartPractice":
@ -23,7 +24,10 @@ 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(1); GameManager.UIMgr.GetPanel<UI_TaskListPanel>().ClickFirstSubProcessesItem(1, () =>
{
GameManager.UIMgr.ShowPanel<UI_TipsForPracticePanel>(E_UI_Layer.System);
});
} }
break; break;
case "BackBtn": case "BackBtn":
@ -32,6 +36,5 @@ public class UI_TipsForPracticePanel : BasePanel
default: default:
break; break;
} }
GameManager.UIMgr.HidePanel<UI_TipsForPracticePanel>();
} }
} }

View File

@ -95,15 +95,15 @@ public class EventCenter : BaseManager<EventCenter>
/// <typeparam name="T">参数类型</typeparam> /// <typeparam name="T">参数类型</typeparam>
/// <param name="type">事件名称</param> /// <param name="type">事件名称</param>
/// <param name="action">有参委托函数</param> /// <param name="action">有参委托函数</param>
public void AddEventListener<T,D>(Enum_EventType type, UnityAction<T,D> action) public void AddEventListener<T, D>(Enum_EventType type, UnityAction<T, D> action)
{ {
if (eventEnumDic.ContainsKey(type)) if (eventEnumDic.ContainsKey(type))
{ {
(eventEnumDic[type] as EventInfo<T,D>).actions += action; (eventEnumDic[type] as EventInfo<T, D>).actions += action;
} }
else else
{ {
eventEnumDic.Add(type, new EventInfo<T,D>(action)); eventEnumDic.Add(type, new EventInfo<T, D>(action));
} }
} }
@ -139,11 +139,11 @@ public class EventCenter : BaseManager<EventCenter>
/// <typeparam name="T"></typeparam> /// <typeparam name="T"></typeparam>
/// <param name="type"></param> /// <param name="type"></param>
/// <param name="action"></param> /// <param name="action"></param>
public void RemoveEventListener<T,D>(Enum_EventType type, UnityAction<T,D> action) public void RemoveEventListener<T, D>(Enum_EventType type, UnityAction<T, D> action)
{ {
if (eventEnumDic.ContainsKey(type)) if (eventEnumDic.ContainsKey(type))
{ {
(eventEnumDic[type] as EventInfo<T,D>).actions -= action; (eventEnumDic[type] as EventInfo<T, D>).actions -= action;
} }
} }
@ -267,7 +267,7 @@ public class EventCenter : BaseManager<EventCenter>
} }
} }
/// <summary> /// <summary>
/// 清空所有事件监听 /// 清空所有事件监听
@ -277,4 +277,24 @@ public class EventCenter : BaseManager<EventCenter>
eventDic.Clear(); eventDic.Clear();
eventEnumDic.Clear(); eventEnumDic.Clear();
} }
/// <summary>
/// 清除报空事件监听
/// </summary>
public void ClearNull()
{
foreach (var eventName in eventDic.Keys)
{
if (string.IsNullOrEmpty(eventName) || eventName == null)
{
eventDic.Remove(eventName);
}
}
foreach (var eventName in eventEnumDic.Keys)
{
if (string.IsNullOrEmpty(eventName.ToString()) || eventName.ToString() == null)
{
eventEnumDic.Remove(eventName);
}
}
}
} }

View File

@ -7,13 +7,13 @@
"index": 1, "index": 1,
"subProcessId": 1, "subProcessId": 1,
"currentScore": 0.0, "currentScore": 0.0,
"isDone": true "isDone": false
}, },
{ {
"index": 2, "index": 2,
"subProcessId": 2, "subProcessId": 2,
"currentScore": 0.0, "currentScore": 0.0,
"isDone": true "isDone": false
}, },
{ {
"index": 3, "index": 3,
@ -112,31 +112,10 @@
"isDone": false "isDone": false
} }
], ],
"experiencedScene": [
"02_MenuScene",
"03_OfficeScene"
],
"allToolAndMaterial": [], "allToolAndMaterial": [],
"allWear": [], "allWear": [],
"sceneName": "03_OfficeScene", "sceneName": "02_MenuScene",
"currentSceneTools": [], "currentSceneTools": [],
"currentSceneTriggers": [ "currentSceneTriggers": [],
{ "currentSceneOtherInfo": "{\r\n \"TestPen3list\": [],\r\n \"InSwitchCloseYDList\": [],\r\n \"InSwitchOpenYDList\": [],\r\n \"currentunInstallJieXian\": [],\r\n \"currentInstallJieXian\": [],\r\n \"installCover\": [],\r\n \"currentInstallTestJieXian\": []\r\n}"
"triggerID": 5005,
"triggerName": "手机",
"selfPosInScene": {
"x": 0.0244421959,
"y": 0.885706842,
"z": -1.00569367
},
"selfRotInScene": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"triggerInfo": "{\"downIndex\":\"2\",\"triggerID\":\"5005\",\"triggerName\":\"\\u624B\\u673A\"}"
}
],
"currentSceneOtherInfo": "{\r\n \"TestPen3list\": [],\r\n \"InSwitchCloseYDList\": [],\r\n \"InSwitchOpenYDList\": [],\r\n \"currentunInstallJieXian\": [],\r\n \"currentInstallJieXian\": [],\r\n \"installCover\": [],\r\n \"currentInstallTestJieXian\": []\r\n}",
"experiencedScenes": []
} }