diff --git a/Assets/GameAssets/Prefebs/Models/moder/地面无线电干扰.prefab b/Assets/GameAssets/Prefebs/Models/moder/地面无线电干扰.prefab index 0e7d3692..750a39ed 100644 --- a/Assets/GameAssets/Prefebs/Models/moder/地面无线电干扰.prefab +++ b/Assets/GameAssets/Prefebs/Models/moder/地面无线电干扰.prefab @@ -77,6 +77,11 @@ MonoBehaviour: interval: 2 explodePrefab: {fileID: 1000013462590818, guid: ecdd96beb7f93494880c052dfccf9dc1, type: 3} + speed: 50 + transformpanl: {fileID: 0} + ground: + serializedVersion: 2 + m_Bits: 1 --- !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 27bcb53b..182e5079 100644 --- a/Assets/Zion/Scripts/ModelFunction/TerrestrialRadioInterference/TerrestrialRadioInterferenceManger.cs +++ b/Assets/Zion/Scripts/ModelFunction/TerrestrialRadioInterference/TerrestrialRadioInterferenceManger.cs @@ -12,7 +12,7 @@ using static InterfaceManager; /// </summary> public class TerrestrialRadioInterferenceManger : MonoBehaviour { - + public EquipmentCommon equipmentCommon; #region 地面无线电干扰数据 @@ -80,7 +80,14 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour /// 爆炸预制体 /// </summary> public GameObject explodePrefab; - // Start is called before the first frame update + /// <summary> + /// 飞机迫降的速度 + /// </summary> + public float speed = 30; + /// <summary> + /// 地面的图层 + /// </summary> + public LayerMask ground; void Start() { equipmentCommon = GetComponent<EquipmentCommon>(); @@ -120,7 +127,7 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour } } - + IEnumerator Timer() { while (true) @@ -128,7 +135,7 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour //Debug.Log("Timer fired at: " + Time.time); yield return new WaitForSeconds(3); // 等待一段时间后继续执行 RadioDisturbance(); - Interferencemode(); + //Interferencemode(); } } @@ -165,9 +172,9 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour { //if (equipmentCommon) //{ - //string msg = $"send2room {equipmentCommon.equipmentType}+{transform.position.ToString().Replace(" ", "").Replace("(", "").Replace(")", "")}+{transform.eulerAngles.ToString().Replace(" ", "").Replace("(", "").Replace(")", "")}"; - //Debug.Log(msg); - //_ = SyncCreateRoom.SendMessageAsync(msg); + //string msg = $"send2room {equipmentCommon.equipmentType}+{transform.position.ToString().Replace(" ", "").Replace("(", "").Replace(")", "")}+{transform.eulerAngles.ToString().Replace(" ", "").Replace("(", "").Replace(")", "")}"; + //Debug.Log(msg); + //_ = SyncCreateRoom.SendMessageAsync(msg); //} for (int i = 0; i < weaponitemone.Count; i++) { @@ -205,7 +212,7 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour { case "0": InterferenceMode = "驱离"; - break ; + break; case "1": InterferenceMode = "迫降"; break; @@ -235,7 +242,7 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour case "干扰角度:": Debug.LogError(weaponitemone[i].para_value); InterferenceAngle = weaponitemone[i].para_value; - break; + break; case "干扰距离:": InterferenceDistance = weaponitemone[i].para_value; detectionRadius = float.Parse(InterferenceDistance); @@ -253,18 +260,18 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour Collider[] colliders = Physics.OverlapSphere(transform.position, 100);//检索范围 for (int i = 0; i < colliders.Length; i++) { - if (colliders[i].transform.tag=="WRJ") + if (colliders[i].transform.tag == "WRJ") { UnmannedAerialVehicle unmannedAerialVehicle = colliders[i].GetComponent<UnmannedAerialVehicle>(); - if (InterferenceMode=="驱离") + if (InterferenceMode == "驱离" && Vector3.Distance(transform.position, unmannedAerialVehicle.transform.position) < 100) { Debug.LogError(unmannedAerialVehicle.name); - unmannedAerialVehicle.transform.Translate(Vector3.back*5*Time.deltaTime); + unmannedAerialVehicle.transform.Translate(Vector3.back * 50 * Time.deltaTime); } - else if (InterferenceMode == "迫降") + else if (InterferenceMode == "迫降" && Vector3.Distance(transform.position, unmannedAerialVehicle.transform.position) < 100) { Debug.LogError(unmannedAerialVehicle.name); - unmannedAerialVehicle.transform.Translate(Vector3.down * 5 * Time.deltaTime); + unmannedAerialVehicle.transform.Translate(Vector3.down * 50 * Time.deltaTime); } } } @@ -286,12 +293,33 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour { //Debug.Log(col.name+"数据链通信频点...:" + unmannedAerialVehicle.dataLinkCommunicationFrequency); if (unmannedAerialVehicle.dataLinkCommunicationFrequency == "" || InterferingFrequency == "") continue;//无数据不执行 - if(unmannedAerialVehicle.dataLinkCommunicationFrequency== InterferingFrequency) + if (unmannedAerialVehicle.dataLinkCommunicationFrequency == InterferingFrequency) { - Debug.Log("干扰...:"+ colliders[i].name + "成功。"); + Debug.Log("干扰...:" + colliders[i].name + "成功。"); //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; + } + } + } } } } @@ -309,8 +337,8 @@ public class TerrestrialRadioInterferenceManger : MonoBehaviour Debug.Log(nowData); DeviceManager.Instance.send2roomStr.Enqueue(nowData); string currentTime = System.DateTime.Now.ToString(); - string _log = currentTime + " " + equipmentCommon.equipmentType + "(" + equipmentCommon.deviceID + ")"+ - "攻击了销毁了"+ unmannedAerialVehicle.unmannedAerialVehicleManage.equipmentCommon.equipmentType + "(" + unmannedAerialVehicle.unmannedAerialVehicleManage.equipmentCommon.deviceID + ")" + string _log = currentTime + " " + equipmentCommon.equipmentType + "(" + equipmentCommon.deviceID + ")" + + "攻击了销毁了" + unmannedAerialVehicle.unmannedAerialVehicleManage.equipmentCommon.equipmentType + "(" + unmannedAerialVehicle.unmannedAerialVehicleManage.equipmentCommon.deviceID + ")" + "编号" + unmannedAerialVehicle.serialNumber + "子无人机"; UploadLog(_log); GameObject Bao = Instantiate(explodePrefab, unmannedAerialVehicle.transform); @@ -338,7 +366,8 @@ public class TerrestrialRadioInterferenceManger : 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); })); }