diff --git a/Assets/GameAssets/Prefebs/Models/moder/地面无线电干扰.prefab b/Assets/GameAssets/Prefebs/Models/moder/地面无线电干扰.prefab index 750a39ed..9d0a5821 100644 --- a/Assets/GameAssets/Prefebs/Models/moder/地面无线电干扰.prefab +++ b/Assets/GameAssets/Prefebs/Models/moder/地面无线电干扰.prefab @@ -78,10 +78,9 @@ MonoBehaviour: explodePrefab: {fileID: 1000013462590818, guid: ecdd96beb7f93494880c052dfccf9dc1, type: 3} speed: 50 - transformpanl: {fileID: 0} ground: serializedVersion: 2 - m_Bits: 1 + m_Bits: 256 --- !u!65 &7099352370737318148 BoxCollider: m_ObjectHideFlags: 0 diff --git a/Assets/Zion/Scripts/ModelFunction/TerrestrialRadioInterference/TerrestrialRadioInterferenceManger.cs b/Assets/Zion/Scripts/ModelFunction/TerrestrialRadioInterference/TerrestrialRadioInterferenceManger.cs index 182e5079..7eafaaac 100644 --- a/Assets/Zion/Scripts/ModelFunction/TerrestrialRadioInterference/TerrestrialRadioInterferenceManger.cs +++ b/Assets/Zion/Scripts/ModelFunction/TerrestrialRadioInterference/TerrestrialRadioInterferenceManger.cs @@ -6,6 +6,7 @@ using AdamSync; using DG.Tweening; using Newtonsoft.Json; using static InterfaceManager; +using System; /// <summary> /// 地面无线电干扰控制 @@ -15,6 +16,7 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour public EquipmentCommon equipmentCommon; + #region 地面无线电干扰数据 /// <summary> /// 干扰频率 @@ -83,7 +85,7 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour /// <summary> /// 飞机迫降的速度 /// </summary> - public float speed = 30; + public float speed = 80; /// <summary> /// 地面的图层 /// </summary> @@ -109,6 +111,8 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour AddBao(unmannedAerialVehicle); }); } + Interferencemode(); + Angularrange(); } #region 启动暂停 /// <summary> @@ -133,7 +137,7 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour while (true) { //Debug.Log("Timer fired at: " + Time.time); - yield return new WaitForSeconds(3); // 等待一段时间后继续执行 + yield return new WaitForSeconds(0.5f); // 等待一段时间后继续执行 RadioDisturbance(); //Interferencemode(); } @@ -252,26 +256,67 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour } } } + + /// <summary> /// 干扰模式 /// </summary> public void Interferencemode() { - Collider[] colliders = Physics.OverlapSphere(transform.position, 100);//检索范围 + Collider[] colliders = Physics.OverlapSphere(transform.position, 300);//检索范围 for (int i = 0; i < colliders.Length; i++) { if (colliders[i].transform.tag == "WRJ") { UnmannedAerialVehicle unmannedAerialVehicle = colliders[i].GetComponent<UnmannedAerialVehicle>(); - if (InterferenceMode == "驱离" && Vector3.Distance(transform.position, unmannedAerialVehicle.transform.position) < 100) + if (InterferenceMode == "驱离") { Debug.LogError(unmannedAerialVehicle.name); - unmannedAerialVehicle.transform.Translate(Vector3.back * 50 * Time.deltaTime); + unmannedAerialVehicle.transform.parent = null; + unmannedAerialVehicle.transform.Translate(Vector3.back * speed * Time.deltaTime); } - else if (InterferenceMode == "迫降" && Vector3.Distance(transform.position, unmannedAerialVehicle.transform.position) < 100) + else if (InterferenceMode == "迫降") { Debug.LogError(unmannedAerialVehicle.name); - unmannedAerialVehicle.transform.Translate(Vector3.down * 50 * Time.deltaTime); + RaycastHit hit; + if (Physics.Raycast(unmannedAerialVehicle.transform.position, Vector3.down, out hit, Mathf.Infinity, ground)) + { + if (hit.distance > 0.5f) + { + Debug.LogError(hit.distance); + unmannedAerialVehicle.transform.parent = null; + unmannedAerialVehicle.transform.Translate(Vector3.down * speed * Time.deltaTime); + } + else + { + speed = 0; + } + } + } + } + } + } + /// <summary> + /// 干扰无人机角度范围 + /// </summary> + /// <exception cref="NotImplementedException"></exception> + private void Angularrange() + { + Collider[] collider = Physics.OverlapSphere(transform.position, 300); + for (int i = 0; i < collider.Length; i++) + { + if (collider[i].transform.tag=="WRJ") + { + UnmannedAerialVehicle unmannedAerialVehicle = collider[i].GetComponent<UnmannedAerialVehicle>(); + Vector3 one =unmannedAerialVehicle.transform.position-transform.position; + float angue = Vector3.Angle(transform.forward, one); + if (float.Parse(InterferenceAngle)>=angue) + { + Debug.LogError("目标出现在范围内"); + } + else + { + Debug.LogError("目标没有出现在范围里面"); } } } @@ -299,27 +344,7 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour //unmannedAerialVehicle.BeAssaulted("无线电干扰"); unmannedAerialVehicles.Enqueue(unmannedAerialVehicle); } - else if(InterferenceMode == "驱离" && Vector3.Distance(transform.position,unmannedAerialVehicle.transform.position) < 100) - { - Debug.LogError(unmannedAerialVehicle.name); - unmannedAerialVehicle.transform.Translate(Vector3.back * 50 * Time.deltaTime); - } - else if (InterferenceMode == "迫降" && Vector3.Distance(transform.position,unmannedAerialVehicle.transform.position) < 100) - { - Debug.LogError(unmannedAerialVehicle.name); - RaycastHit hit; - if (Physics.Raycast(unmannedAerialVehicle.transform.position,Vector3.down,out hit,Mathf.Infinity,ground)) - { - if (hit.distance>0.5f) - { - unmannedAerialVehicle.transform.Translate(Vector3.down * speed * Time.deltaTime); - } - else - { - speed= 0; - } - } - } + } } } diff --git a/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicleManage.cs b/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicleManage.cs index a507419f..2b33a6b6 100644 --- a/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicleManage.cs +++ b/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicleManage.cs @@ -145,7 +145,7 @@ public class UnmannedAerialVehicleManage : MonoBehaviour // Update is called once per frame void Update() { - if(isStartRehearsing && equipmentCommon.isPlayer) + if (isStartRehearsing && equipmentCommon.isPlayer) { switch (pattern) { @@ -164,7 +164,7 @@ public class UnmannedAerialVehicleManage : MonoBehaviour } var _unmannedAerialVehicle = unmannedAerialVehicles.FindAll(x => x != null); - if (_unmannedAerialVehicle.Count==0) + if (_unmannedAerialVehicle.Count == 0) { string nowData = string.Format("{0},{1}", "SetToBeDestroyed", equipmentCommon.deviceID); Debug.Log(nowData); @@ -172,13 +172,14 @@ public class UnmannedAerialVehicleManage : MonoBehaviour UploadLog(equipmentCommon.deviceID); WWWForm headers = new WWWForm(); headers.AddField("id", equipmentCommon.deviceID); - StartCoroutine(PostString(Url_Deletepracticedevicedetail, headers, data => { + StartCoroutine(PostString(Url_Deletepracticedevicedetail, headers, data => + { Debug.Log(data); Destroy(gameObject); })); } } - + } @@ -200,7 +201,8 @@ public class UnmannedAerialVehicleManage : MonoBehaviour WWWForm wWWForm = new WWWForm(); wWWForm.AddField("data", uploadLogMainJson); Debug.Log(uploadLogMainJson); - StartCoroutine(PostString(Url_Addpracticelog, wWWForm, data => { + StartCoroutine(PostString(Url_Addpracticelog, wWWForm, data => + { Debug.Log(data); })); } @@ -237,7 +239,7 @@ public class UnmannedAerialVehicleManage : MonoBehaviour if (isEngagedTarget) return; List<Collider> colliders = Physics.OverlapSphere(transform.position, detectionRadius).ToList(); // 检索范围内的所有碰撞体 List<Collider> colliders1 = new List<Collider>(); - for (int i=0;i< colliders.Count; i++) + for (int i = 0; i < colliders.Count; i++) { if (colliders[i].transform.tag == "AttackTarget") colliders1.Add(colliders[i]); @@ -326,16 +328,81 @@ public class UnmannedAerialVehicleManage : MonoBehaviour RCS = weaponitemone[i].para_value; break; case "卫星定位频点:": - satellitePositioningFrequency = weaponitemone[i].para_value; + //satellitePositioningFrequency = weaponitemone[i].para_value; + switch (weaponitemone[i].para_value) + { + case "0": + satellitePositioningFrequency = "1227.60 MHz"; + break; + case "1": + satellitePositioningFrequency = "1381.05 MHz"; + break; + case "2": + satellitePositioningFrequency = "1575.42 MHz"; + break; + default: + break; + } break; case "数据链通信频点:": - dataLinkCommunicationFrequency = weaponitemone[i].para_value; + //dataLinkCommunicationFrequency = weaponitemone[i].para_value; + switch (weaponitemone[i].para_value) + { + case "0": + dataLinkCommunicationFrequency = "2GHz"; + break; + case "1": + dataLinkCommunicationFrequency = "4GHz"; + break; + case "2": + dataLinkCommunicationFrequency = "5GHz"; + break; + default: + break; + } break; case "电子侦察能力:": - electronicReconnaissanceCapability = weaponitemone[i].para_value; + //electronicReconnaissanceCapability = weaponitemone[i].para_value; + switch (weaponitemone[i].para_value) + { + case "0": + electronicReconnaissanceCapability = "UHF"; + break; + case "1": + electronicReconnaissanceCapability = "L"; + break; + case "2": + electronicReconnaissanceCapability = "S"; + break; + case "3": + electronicReconnaissanceCapability = "C"; + break; + case "4": + electronicReconnaissanceCapability = "X"; + break; + case "5": + electronicReconnaissanceCapability = "Ku"; + break; + case "6": + electronicReconnaissanceCapability = "Ka"; + break; + default: + break; + } break; case "光学侦察能力:": - opticalReconnaissanceCapability = weaponitemone[i].para_value; + //opticalReconnaissanceCapability = weaponitemone[i].para_value; + switch (weaponitemone[i].para_value) + { + case "0": + opticalReconnaissanceCapability = "有"; + break; + case "1": + opticalReconnaissanceCapability = "无"; + break; + default: + break; + } break; default: break; @@ -367,7 +434,7 @@ public class UnmannedAerialVehicleManage : MonoBehaviour unmannedAerialVehicles[i].dataLinkCommunicationFrequency = dataLinkCommunicationFrequency; unmannedAerialVehicles[i].electronicReconnaissanceCapability = electronicReconnaissanceCapability; unmannedAerialVehicles[i].opticalReconnaissanceCapability = opticalReconnaissanceCapability; - + } } } @@ -546,7 +613,7 @@ public class UnmannedAerialVehicleManage : MonoBehaviour yield return new WaitForSeconds(_time); // 等待一帧时间 isMove = true; } - public IEnumerator MoveObjectAlongPath(Vector3 _positions,bool _isMove) // 协程:按路线移动物体 + public IEnumerator MoveObjectAlongPath(Vector3 _positions, bool _isMove) // 协程:按路线移动物体 { Vector3 targetPosition = new Vector3(_positions.x, 200, _positions.z);// 目标位置为当前顶点坐标 float _distance = Vector3.Distance(transform.position, targetPosition); diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 8d9f8f9a..0f88af60 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -7,6 +7,7 @@ TagManager: - Found - WRJ - AttackTarget + - WRJ1 layers: - Default - TransparentFX