From 0f2615cb752941a6844d2776ad814fd237800e4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E5=90=8D?= <3077614386@qq.com> Date: Sun, 28 Jan 2024 10:15:43 +0800 Subject: [PATCH] 1 --- Assets/Temp/Scripts/Spectrumdetection.cs | 38 +++++++++++++++++++ Assets/Zion/Scripts/Adam/GameManager.cs | 18 +++++++++ .../UAV/UnmannedAerialVehicleManage.cs | 29 ++++++++++++++ 3 files changed, 85 insertions(+) diff --git a/Assets/Temp/Scripts/Spectrumdetection.cs b/Assets/Temp/Scripts/Spectrumdetection.cs index 4b51a062..2e4f5f89 100644 --- a/Assets/Temp/Scripts/Spectrumdetection.cs +++ b/Assets/Temp/Scripts/Spectrumdetection.cs @@ -9,6 +9,9 @@ using UnityEngine.UI; public class Spectrumdetection : MonoBehaviour { + + public static List spectrumdetections=new List(); + public EquipmentCommon equipmentCommon; #region 频谱探测的参数 /// @@ -87,6 +90,7 @@ public class Spectrumdetection : MonoBehaviour public Camera camera; void Start() { + spectrumdetections.Add(this); equipmentCommon = GetComponent(); // 订阅布尔值变化事件 OnActivationChanged += OnActivationChangedHandler; @@ -106,6 +110,7 @@ public class Spectrumdetection : MonoBehaviour { Frequency = "HUF"; camera.cullingMask = 1 << 16; + SweepFrequencyBandTo(); } }); toggle2.onValueChanged.AddListener((ison) => @@ -114,6 +119,7 @@ public class Spectrumdetection : MonoBehaviour { Frequency = "L"; camera.cullingMask = 1 << 17; + SweepFrequencyBandTo(); } }); toggle3.onValueChanged.AddListener((ison) => @@ -122,6 +128,7 @@ public class Spectrumdetection : MonoBehaviour { Frequency = "S"; camera.cullingMask = 1 << 18; + SweepFrequencyBandTo(); } }); toggle4.onValueChanged.AddListener((ison) => @@ -130,6 +137,7 @@ public class Spectrumdetection : MonoBehaviour { Frequency = "C"; camera.cullingMask = 1 << 19; + SweepFrequencyBandTo(); } }); toggle5.onValueChanged.AddListener((ison) => @@ -138,6 +146,7 @@ public class Spectrumdetection : MonoBehaviour { Frequency = "X"; camera.cullingMask = 1 << 20; + SweepFrequencyBandTo(); } }); toggle6.onValueChanged.AddListener((ison) => @@ -146,6 +155,7 @@ public class Spectrumdetection : MonoBehaviour { Frequency = "Ku"; camera.cullingMask = 1 << 21; + SweepFrequencyBandTo(); } }); toggle7.onValueChanged.AddListener((ison) => @@ -154,10 +164,31 @@ public class Spectrumdetection : MonoBehaviour { Frequency = "Ka"; camera.cullingMask = (1 << 22); + SweepFrequencyBandTo(); } }); } + public void SweepFrequencyBandTo() + { + string nowData = GetSyncDataThree(); + DeviceManager.Instance.send2roomStr.Enqueue(nowData); + } + + public void CameraFrequency(string _frequency) + { + int layerValue = LayerMask.NameToLayer(_frequency); + Frequency = _frequency; + camera.cullingMask = (1 << layerValue); + } + /// + /// 设置扫描频段同步 + /// + /// + protected string GetSyncDataThree() + { + return string.Format("{0},{1},{2},{3}", "SweepFrequencyBand", "PPTC", equipmentCommon.deviceID, Frequency); + } /// /// 演习是否启动 /// @@ -355,6 +386,13 @@ public class Spectrumdetection : MonoBehaviour } private void OnDestroy() { + for(int i = 0; i < spectrumdetections.Count; i++) + { + if (spectrumdetections[i] == null) + { + spectrumdetections.RemoveAt(i); + } + } Destroy(Frequencyiamge.gameObject); OnActivationChanged -= OnActivationChangedHandler; } diff --git a/Assets/Zion/Scripts/Adam/GameManager.cs b/Assets/Zion/Scripts/Adam/GameManager.cs index ceb81611..622d96f6 100644 --- a/Assets/Zion/Scripts/Adam/GameManager.cs +++ b/Assets/Zion/Scripts/Adam/GameManager.cs @@ -332,6 +332,24 @@ public class GameManager : MonoSingleton } } break; + case "SweepFrequencyBand"://设备探测频段设置 + if (data[1] == "WRJ") + { + UnmannedAerialVehicleManage unmannedAerialVehicleManage = UnmannedAerialVehicleManage.unmannedAerialVehicleManages.Find(x => x.equipmentCommon.deviceID == data[2]); + if (unmannedAerialVehicleManage) + { + unmannedAerialVehicleManage.SurveillanceFrequency(data[3]); + } + } + else if (data[1] == "PPTC") + { + Spectrumdetection spectrumdetection = Spectrumdetection.spectrumdetections.Find(x => x.equipmentCommon.deviceID == data[2]); + if (spectrumdetection) + { + spectrumdetection.CameraFrequency(data[3]); + } + } + break; default: break; diff --git a/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicleManage.cs b/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicleManage.cs index 2bd040d3..5f80a5ee 100644 --- a/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicleManage.cs +++ b/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicleManage.cs @@ -231,9 +231,18 @@ public class UnmannedAerialVehicleManage : MonoBehaviour electronicReconnaissanceCapability = change.transform.name; int layerValue = LayerMask.NameToLayer(electronicReconnaissanceCapability); dzWRJCamera.cullingMask = 1 << layerValue; + string nowData = GetSyncDataThree(); + DeviceManager.Instance.send2roomStr.Enqueue(nowData); } } + public void SurveillanceFrequency(string _frequency) + { + int layerValue = LayerMask.NameToLayer(_frequency); + electronicReconnaissanceCapability = _frequency; + dzWRJCamera.cullingMask = 1 << layerValue; + } + [ContextMenu("Test")] public void Test() { @@ -415,10 +424,23 @@ public class UnmannedAerialVehicleManage : MonoBehaviour attackTarget.position.x, attackTarget.position.y, attackTarget.position.z); } + /// + /// 设置频段同步 + /// + /// protected string GetSyncDataTwo() { return string.Format("{0},{1},{2},{3}", "BandSetting", "WRJ", equipmentCommon.deviceID, dataLinkCommunicationFrequency); } + + /// + /// 设置扫描频段同步 + /// + /// + protected string GetSyncDataThree() + { + return string.Format("{0},{1},{2},{3}", "SweepFrequencyBand", "WRJ", equipmentCommon.deviceID, dataLinkCommunicationFrequency); + } #region 启动暂停 /// /// 导条变化调用 @@ -988,6 +1010,13 @@ public class UnmannedAerialVehicleManage : MonoBehaviour } private void OnDestroy() { + for (int i = 0; i < unmannedAerialVehicleManages.Count; i++) + { + if (unmannedAerialVehicleManages[i] == null) + { + unmannedAerialVehicleManages.RemoveAt(i); + } + } StopCoroutine(ShowRadarTips(0, 0)); OnActivationChanged -= OnActivationChangedHandler; Destroy(airRoute.gameObject);