步骤还原

This commit is contained in:
陈向学 2024-08-27 16:00:20 +08:00
parent a49d45718e
commit 8c8ebef03a
6 changed files with 90 additions and 28 deletions

View File

@ -4520,7 +4520,7 @@ MonoBehaviour:
cabinetDoor: {fileID: 1462070149} cabinetDoor: {fileID: 1462070149}
socket: {fileID: 127937610} socket: {fileID: 127937610}
inSwitch: {fileID: 1763547787} inSwitch: {fileID: 1763547787}
jieXian_screws: jieXian_lines:
- {fileID: 302277751} - {fileID: 302277751}
- {fileID: 920818267} - {fileID: 920818267}
- {fileID: 302277750} - {fileID: 302277750}

View File

@ -12,9 +12,12 @@ public class Check_JieXian : PermanentTriggerBase
/// </summary> /// </summary>
public bool isChecked; public bool isChecked;
private void OnMouseDown() private void OnMouseDown()
{
if (SiteManager.instance.measuringCabinet.jieXian_lines.TrueForAll(a=>a.isConnected) && SiteManager.instance.measuringCabinet.meteringDevice.jieXian_screws.TrueForAll(a=>a.isInstall))
{ {
Invoke("Check", 1); Invoke("Check", 1);
} }
}
/// <summary> /// <summary>
/// 检查成功 /// 检查成功
@ -23,7 +26,7 @@ public class Check_JieXian : PermanentTriggerBase
{ {
Debug.Log("接线完好"); Debug.Log("接线完好");
isChecked = true; isChecked = true;
gameObject.SetActive(false); GetComponent<BoxCollider>().enabled = false;
if (GameManager.UIMgr != null) if (GameManager.UIMgr != null)
{ {

View File

@ -28,7 +28,7 @@ public class Device_MeasuringCabinet : MonoBehaviour
/// <summary> /// <summary>
/// 电能表接线 /// 电能表接线
/// </summary> /// </summary>
public List<Tool_Line> jieXian_screws; public List<Tool_Line> jieXian_lines;
/// <summary> /// <summary>
/// 电能表碰撞 /// 电能表碰撞
@ -47,8 +47,15 @@ public class Device_MeasuringCabinet : MonoBehaviour
/// </summary> /// </summary>
public Check_JieXian check_JieXian; public Check_JieXian check_JieXian;
private void Awake() private void Awake()
{
AddActions();
GameManager.EventMgr.AddEventListener<string>(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
}
/// <summary>
/// 添加各种操作回调
/// </summary>
public void AddActions()
{ {
//添加开关切换回调 //添加开关切换回调
inSwitch.AddAction(isOpen => inSwitch.AddAction(isOpen =>
@ -64,9 +71,22 @@ public class Device_MeasuringCabinet : MonoBehaviour
{ {
//刷新带电状态 //刷新带电状态
CheckHasElectricity(); CheckHasElectricity();
//判断接线完好显示隐藏
CheckJieXianOk();
});
});
//接线连接和取下回调
jieXian_lines.ForEach(line =>
{
line.AddAction(isConnected =>
{
//刷新带点状态
CheckHasElectricity();
//判断接线完好显示隐藏
CheckJieXianOk();
}); });
}); });
GameManager.EventMgr.AddEventListener<string>(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
} }
private void SwitchSubProcessStepTriggerID(string arg0) private void SwitchSubProcessStepTriggerID(string arg0)
{ {
@ -93,7 +113,7 @@ public class Device_MeasuringCabinet : MonoBehaviour
meteringDevice.Init(true); meteringDevice.Init(true);
//还原接线完好 //还原接线完好
check_JieXian.isChecked = false; check_JieXian.isChecked = false;
check_JieXian.gameObject.SetActive(true); check_JieXian.GetComponent<BoxCollider>().enabled = true;
//还原柜门 //还原柜门
cabinetDoor.CloseState(); cabinetDoor.CloseState();
@ -102,7 +122,7 @@ public class Device_MeasuringCabinet : MonoBehaviour
//还原进线开关 //还原进线开关
inSwitch.OpenState(); inSwitch.OpenState();
//还原电能表接线 //还原电能表接线
jieXian_screws.ForEach(screw => jieXian_lines.ForEach(screw =>
{ {
screw.isConnected = true; screw.isConnected = true;
screw.transform.localPosition = new Vector3(screw.transform.localPosition.x, screw.InstallPosY, screw.transform.localPosition.z); screw.transform.localPosition = new Vector3(screw.transform.localPosition.x, screw.InstallPosY, screw.transform.localPosition.z);
@ -120,7 +140,7 @@ public class Device_MeasuringCabinet : MonoBehaviour
public void ClearLineScrew() public void ClearLineScrew()
{ {
Debug.Log("清除接线关联的螺丝"); Debug.Log("清除接线关联的螺丝");
jieXian_screws.ForEach(a => jieXian_lines.ForEach(a =>
{ {
a.screws.Clear(); a.screws.Clear();
}); });
@ -131,7 +151,7 @@ public class Device_MeasuringCabinet : MonoBehaviour
public void SetLineScrew() public void SetLineScrew()
{ {
Debug.Log("接线重新关联螺丝"); Debug.Log("接线重新关联螺丝");
jieXian_screws.ForEach(a => jieXian_lines.ForEach(a =>
{ {
a.screws = meteringDevice.jieXian_screws.FindAll(b => b.gameObject.name.StartsWith(a.gameObject.name)); a.screws = meteringDevice.jieXian_screws.FindAll(b => b.gameObject.name.StartsWith(a.gameObject.name));
}); });
@ -144,7 +164,7 @@ public class Device_MeasuringCabinet : MonoBehaviour
{ {
Debug.Log("带电状态刷新"); Debug.Log("带电状态刷新");
//进线螺丝是否带电 //进线螺丝是否带电
jieXian_screws.ForEach(a => jieXian_lines.ForEach(a =>
{ {
if (!inSwitch.isOpen) if (!inSwitch.isOpen)
{ {
@ -174,7 +194,26 @@ public class Device_MeasuringCabinet : MonoBehaviour
a.hasElectricity = inSwitch.isOpen; a.hasElectricity = inSwitch.isOpen;
}); });
} }
/// <summary>
/// 刷新接线完好的显示隐藏
/// </summary>
public void CheckJieXianOk()
{
if (jieXian_lines.TrueForAll(a => a.isConnected) && meteringDevice.jieXian_screws.TrueForAll(a => a.isInstall))
{
//显示接线完好物体
SiteManager.instance.measuringCabinet.check_JieXian.isChecked = false;
SiteManager.instance.measuringCabinet.check_JieXian.GetComponent<BoxCollider>().enabled=true;
Debug.Log("显示接线");
}
else
{
//隐藏接线完好物体
SiteManager.instance.measuringCabinet.check_JieXian.isChecked = true;
SiteManager.instance.measuringCabinet.check_JieXian.GetComponent<BoxCollider>().enabled = false;
Debug.Log("隐藏接线");
}
}
private void Update() private void Update()
{ {
//是否可以触发能表的拆卸或安装电 //是否可以触发能表的拆卸或安装电
@ -185,7 +224,7 @@ public class Device_MeasuringCabinet : MonoBehaviour
else else
{ {
//电能表固定螺丝拆掉了,线拆掉了 //电能表固定螺丝拆掉了,线拆掉了
if (!meteringDevice.fix_screw_left.isInstall && !meteringDevice.fix_screw_right.isInstall && jieXian_screws.TrueForAll(a => !a.isConnected)) if (!meteringDevice.fix_screw_left.isInstall && !meteringDevice.fix_screw_right.isInstall && jieXian_lines.TrueForAll(a => !a.isConnected))
{ {
dianCollider.enabled = true; dianCollider.enabled = true;
} }
@ -215,11 +254,8 @@ public class Device_MeasuringCabinet : MonoBehaviour
meteringDevice.Add(); meteringDevice.Add();
//接线关联螺丝 //接线关联螺丝
SetLineScrew(); SetLineScrew();
//重新注册回调
//½ÓÏßδ¼ì²é AddActions();
SiteManager.instance.measuringCabinet.check_JieXian.isChecked = false;
SiteManager.instance.measuringCabinet.check_JieXian.gameObject.SetActive(true);
//刷新带电状态 //刷新带电状态
CheckHasElectricity(); CheckHasElectricity();
} }

View File

@ -64,13 +64,20 @@ public class StepState_1002 : StepState
//清空背包 //清空背包
PacksackBagMgr.Instance.ClearAllToolAndDiveceAndMaterial(); PacksackBagMgr.Instance.ClearAllToolAndDiveceAndMaterial();
//»¹Ô­»õ¼Ü //完成第一步点击去工具间
E_SceneType curret=GameManager.RunModelMgr.SceneType;
GameManager.RunModelMgr.SceneType = E_SceneType.Office;
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID("工具间按钮", true)==0)
{
Debug.Log("工具间按钮已点击");
}
GameManager.RunModelMgr.SceneType = curret;
} }
else if (num == 3006) else if (num == 3006)
{ {
//选取工器具 //选取工器具
//服装拿到背包 //服装拿到背包
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 =>
@ -131,7 +138,7 @@ public class StepState_1002 : StepState
//接线已检查 //接线已检查
SiteManager.instance.measuringCabinet.check_JieXian.isChecked = true; SiteManager.instance.measuringCabinet.check_JieXian.isChecked = true;
SiteManager.instance.measuringCabinet.check_JieXian.gameObject.SetActive(false); SiteManager.instance.measuringCabinet.check_JieXian.GetComponent<BoxCollider>().enabled = false;
} }
else if (num == 3011) else if (num == 3011)
@ -157,7 +164,7 @@ public class StepState_1002 : StepState
SiteManager.instance.measuringCabinet.meteringDevice = null; SiteManager.instance.measuringCabinet.meteringDevice = null;
//电能表接线取下了 //电能表接线取下了
SiteManager.instance.measuringCabinet.jieXian_screws.ForEach(screw => SiteManager.instance.measuringCabinet.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);
@ -171,11 +178,15 @@ public class StepState_1002 : StepState
SiteManager.instance.measuringCabinet.meteringDevice = GameObject.FindObjectOfType<Device_3Phase4WireMeter>(true); SiteManager.instance.measuringCabinet.meteringDevice = GameObject.FindObjectOfType<Device_3Phase4WireMeter>(true);
SiteManager.instance.measuringCabinet.meteringDevice.gameObject.SetActive(true); SiteManager.instance.measuringCabinet.meteringDevice.gameObject.SetActive(true);
//重新注册回调
SiteManager.instance.measuringCabinet.AddActions();
//固定螺丝拧上
SiteManager.instance.measuringCabinet.meteringDevice.FixScrewInstall();
//接线未检查 //接线未检查
SiteManager.instance.measuringCabinet.check_JieXian.isChecked = false; SiteManager.instance.measuringCabinet.check_JieXian.isChecked = false;
SiteManager.instance.measuringCabinet.check_JieXian.gameObject.SetActive(true); SiteManager.instance.measuringCabinet.check_JieXian.GetComponent<BoxCollider>().enabled = true;
//电能表接线连上了 //电能表接线连上了
SiteManager.instance.measuringCabinet.jieXian_screws.ForEach(screw => SiteManager.instance.measuringCabinet.jieXian_lines.ForEach(screw =>
{ {
screw.isConnected = true; screw.isConnected = true;
screw.transform.localPosition = new Vector3(screw.transform.localPosition.x, screw.InstallPosY, screw.transform.localPosition.z); screw.transform.localPosition = new Vector3(screw.transform.localPosition.x, screw.InstallPosY, screw.transform.localPosition.z);
@ -191,7 +202,7 @@ public class StepState_1002 : StepState
//接线未检查 //接线未检查
SiteManager.instance.measuringCabinet.check_JieXian.isChecked = true; SiteManager.instance.measuringCabinet.check_JieXian.isChecked = true;
SiteManager.instance.measuringCabinet.check_JieXian.gameObject.SetActive(false); SiteManager.instance.measuringCabinet.check_JieXian.GetComponent<BoxCollider>().enabled = false;
} }
else if(num== 3016) else if(num== 3016)
{ {

View File

@ -21,12 +21,14 @@ public class Tool_BoxSeal : Tool_Base
if (SiteManager.instance.measuringCabinet.meteringDevice != null && !SiteManager.instance.measuringCabinet.meteringDevice.cover.isOpen) if (SiteManager.instance.measuringCabinet.meteringDevice != null && !SiteManager.instance.measuringCabinet.meteringDevice.cover.isOpen)
{ {
//ÂÝ˿šÉÏÁ˾Ͱ²×°·âÓ¡ //ÂÝ˿šÉÏÁ˾Ͱ²×°·âÓ¡
if (screw == SiteManager.instance.measuringCabinet.meteringDevice.fix_screw_left && SiteManager.instance.measuringCabinet.meteringDevice.fix_screw_left.isInstall) if (screw == SiteManager.instance.measuringCabinet.meteringDevice.cover.cover_screw_Left && SiteManager.instance.measuringCabinet.meteringDevice.cover.cover_screw_Left.isInstall)
{ {
//¸Ç×Ó×ó·âÓ¡
SiteManager.instance.measuringCabinet.meteringDevice.cover.cover_seal_Left.Install(); SiteManager.instance.measuringCabinet.meteringDevice.cover.cover_seal_Left.Install();
} }
else if (screw == SiteManager.instance.measuringCabinet.meteringDevice.fix_screw_right && SiteManager.instance.measuringCabinet.meteringDevice.fix_screw_right.isInstall) else if (screw == SiteManager.instance.measuringCabinet.meteringDevice.cover.cover_screw_Right && SiteManager.instance.measuringCabinet.meteringDevice.cover.cover_screw_Right.isInstall)
{ {
//¸Ç×ÓÓÒ·âÓ¡
SiteManager.instance.measuringCabinet.meteringDevice.cover.cover_seal_Right.Install(); SiteManager.instance.measuringCabinet.meteringDevice.cover.cover_seal_Right.Install();
} }
} }

View File

@ -1,4 +1,5 @@
using DG.Tweening; using DG.Tweening;
using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
@ -29,11 +30,18 @@ public class Tool_Line: Tool_Base
/// </summary> /// </summary>
public float InstallPosY; public float InstallPosY;
private Action<bool> actionBack;
protected override void OnAwake() protected override void OnAwake()
{ {
base.OnAwake(); base.OnAwake();
id = gameObject.name; id = gameObject.name;
} }
public void AddAction(Action<bool> actionBack)
{
this.actionBack = actionBack;
}
protected override void OnMDown() protected override void OnMDown()
{ {
if ((triggerAction == null ? 0 : triggerAction.Invoke(triggerName, false)) == 0) if ((triggerAction == null ? 0 : triggerAction.Invoke(triggerName, false)) == 0)
@ -47,6 +55,7 @@ public class Tool_Line: Tool_Base
transform.DOLocalMoveY(InstallPosY - 2, 1).OnComplete(() => transform.DOLocalMoveY(InstallPosY - 2, 1).OnComplete(() =>
{ {
isConnected = false; isConnected = false;
actionBack?.Invoke(isConnected);
int state = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true)); int state = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
}); });
} }
@ -59,6 +68,7 @@ public class Tool_Line: Tool_Base
transform.DOLocalMoveY(InstallPosY, 1).OnComplete(() => transform.DOLocalMoveY(InstallPosY, 1).OnComplete(() =>
{ {
isConnected = true; isConnected = true;
actionBack?.Invoke(isConnected);
int state = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true)); int state = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
}); });
} }