This commit is contained in:
yulong 2023-12-13 14:37:14 +08:00
parent 17aa410687
commit 3ab059e9b2
2 changed files with 53 additions and 19 deletions

View File

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

View File

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