无线电

This commit is contained in:
yulong 2023-12-14 14:44:24 +08:00
parent 3ab059e9b2
commit 15286af0bf
4 changed files with 134 additions and 42 deletions

View File

@ -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

View File

@ -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;
}
}
}
}
}
}

View File

@ -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);

View File

@ -7,6 +7,7 @@ TagManager:
- Found
- WRJ
- AttackTarget
- WRJ1
layers:
- Default
- TransparentFX