From 56692e024431a6cd9f0458ed0dfd403df01dc22f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E5=90=8D?= <3077614386@qq.com> Date: Tue, 23 Jan 2024 18:00:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E6=97=B6=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/StreamingAssets/IPPort.txt | 2 +- Assets/StreamingAssets/confing.txt | 2 +- .../Scripts/ModelFunction/EquipmentCommon.cs | 18 +++++++++++ .../TerrestrialRadioInterferenceManger.cs | 31 +++++++++++++++++-- .../UAV/UnmannedAerialVehicle.cs | 27 +++++++++++++++- 5 files changed, 74 insertions(+), 6 deletions(-) diff --git a/Assets/StreamingAssets/IPPort.txt b/Assets/StreamingAssets/IPPort.txt index 298829e4..8e7c2bee 100644 --- a/Assets/StreamingAssets/IPPort.txt +++ b/Assets/StreamingAssets/IPPort.txt @@ -1 +1 @@ -127.0.0.1:48888 \ No newline at end of file +172.20.10.5:48888 \ No newline at end of file diff --git a/Assets/StreamingAssets/confing.txt b/Assets/StreamingAssets/confing.txt index e56ea71e..90dc926e 100644 --- a/Assets/StreamingAssets/confing.txt +++ b/Assets/StreamingAssets/confing.txt @@ -1 +1 @@ -127.0.0.1 \ No newline at end of file +172.20.10.5 \ No newline at end of file diff --git a/Assets/Zion/Scripts/ModelFunction/EquipmentCommon.cs b/Assets/Zion/Scripts/ModelFunction/EquipmentCommon.cs index f2a1bbb5..3165f504 100644 --- a/Assets/Zion/Scripts/ModelFunction/EquipmentCommon.cs +++ b/Assets/Zion/Scripts/ModelFunction/EquipmentCommon.cs @@ -288,6 +288,13 @@ public class EquipmentCommon : MonoBehaviour } } break; + case "WRJExpel"://驱离无人机 + UnmannedAerialVehicleManage unmannedAerialVehicleManageExpel = GetComponent(); + if (unmannedAerialVehicleManageExpel) + { + unmannedAerialVehicleManageExpel.CheckSatellitePositioningFrequency(data[2], int.Parse(data[2])); + } + break; case "DroneWasDestroyed"://单个无人机被销毁 UnmannedAerialVehicleManage _unmannedAerialVehicleManage = GetComponent(); if (_unmannedAerialVehicleManage) @@ -299,6 +306,17 @@ public class EquipmentCommon : MonoBehaviour } } break; + case "WRJDitch":// + UnmannedAerialVehicleManage _unmannedAerialVehicleManageDitch = GetComponent(); + if (_unmannedAerialVehicleManageDitch) + { + UnmannedAerialVehicle unmannedAerialVehicle = _unmannedAerialVehicleManageDitch.unmannedAerialVehicles.Find(x => x.serialNumber == data[2]); + if (unmannedAerialVehicle) + { + unmannedAerialVehicle.CheckSatellitePositioningFrequency(data[3], int.Parse(data[4])); + } + } + break; case "Planedata": UnmannedAerialVehicleManage unmannedAerialVehicleManage1 = GetComponent(); if (unmannedAerialVehicleManage1) diff --git a/Assets/Zion/Scripts/ModelFunction/TerrestrialRadioInterference/TerrestrialRadioInterferenceManger.cs b/Assets/Zion/Scripts/ModelFunction/TerrestrialRadioInterference/TerrestrialRadioInterferenceManger.cs index ddc92f04..b48a4fe4 100644 --- a/Assets/Zion/Scripts/ModelFunction/TerrestrialRadioInterference/TerrestrialRadioInterferenceManger.cs +++ b/Assets/Zion/Scripts/ModelFunction/TerrestrialRadioInterference/TerrestrialRadioInterferenceManger.cs @@ -11,6 +11,7 @@ using UnityEngine.UI; using UnityEngine.EventSystems; using Random = UnityEngine.Random; using static UnityEngine.GraphicsBuffer; +using UnityEngine.UIElements; /* 地面无线电干扰对无人机的干扰通常是指对其数据链通信频点的干扰,而不是卫星定位频点的干扰。 @@ -313,17 +314,41 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour /// public void Interferencemode(Transform wrj) { - UnmannedAerialVehicleManage unmannedAerialVehicleManage = null; - if (wrj.GetComponent()) + UnmannedAerialVehicleManage unmannedAerialVehicleManage = wrj.GetComponent(); + if (unmannedAerialVehicleManage) { unmannedAerialVehicleManage = wrj.GetComponent(); unmannedAerialVehicleManage.CheckSatellitePositioningFrequency( InterferenceMode, ground); + var nowData = GetSyncData(unmannedAerialVehicleManage); + DeviceManager.Instance.send2roomStr.Enqueue(nowData); + } + UnmannedAerialVehicle unmannedAerialVehicle = wrj.GetComponent(); + if (unmannedAerialVehicle) + { + unmannedAerialVehicle = wrj.GetComponent(); + unmannedAerialVehicle.CheckSatellitePositioningFrequency( + InterferenceMode, + ground); + var nowData = GetSyncData(unmannedAerialVehicle); + DeviceManager.Instance.send2roomStr.Enqueue(nowData); } isDo = true; } - + /// + /// 无人机整体驱离 + /// + /// + protected string GetSyncData(UnmannedAerialVehicleManage unmannedAerialVehicleManage) + { + return string.Format("{0},{1},{2},{3}", "WRJExpel", unmannedAerialVehicleManage.equipmentCommon.deviceID, InterferenceMode, LayerMask.LayerToName(ground)); + } + + protected string GetSyncData(UnmannedAerialVehicle unmannedAerialVehicle) + { + return string.Format("{0},{1},{2},{3},{4}", "WRJDitch", unmannedAerialVehicle.unmannedAerialVehicleManage.equipmentCommon.deviceID, unmannedAerialVehicle.serialNumber, InterferenceMode, LayerMask.LayerToName(ground)); + } /// /// 开启无线电干扰 /// diff --git a/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicle.cs b/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicle.cs index 6eb82bc8..7b60587a 100644 --- a/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicle.cs +++ b/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicle.cs @@ -194,7 +194,32 @@ public class UnmannedAerialVehicle : MonoBehaviour })); } - + public void CheckSatellitePositioningFrequency( + string interferenceMode, + LayerMask ground) + { + + if (interferenceMode == "驱离") + { + transform.DOKill(); + transform.LookAt(new Vector3(-500, 160, 1600)); + transform.DOMove(new Vector3(-500, 160, 1600), 60); + } + else if (interferenceMode == "迫降") + { + transform.DOKill(); + RaycastHit hit; + if (Physics.Raycast(transform.position, Vector3.down, out hit, Mathf.Infinity, ground)) + { + if (hit.distance > 1f) + { + hit.point = new Vector3(hit.point.x, hit.point.y + 3, hit.point.z); + transform.DOMove(hit.point, 6); + } + } + } + } + private void OnBecameInvisible()