This commit is contained in:
账号名 2024-01-28 10:15:43 +08:00
parent 27c1944e78
commit 0f2615cb75
3 changed files with 85 additions and 0 deletions

View File

@ -9,6 +9,9 @@ using UnityEngine.UI;
public class Spectrumdetection : MonoBehaviour
{
public static List<Spectrumdetection> spectrumdetections=new List<Spectrumdetection>();
public EquipmentCommon equipmentCommon;
#region
/// <summary>
@ -87,6 +90,7 @@ public class Spectrumdetection : MonoBehaviour
public Camera camera;
void Start()
{
spectrumdetections.Add(this);
equipmentCommon = GetComponent<EquipmentCommon>();
// 订阅布尔值变化事件
OnActivationChanged += OnActivationChangedHandler;
@ -106,6 +110,7 @@ public class Spectrumdetection : MonoBehaviour
{
Frequency = "HUF";
camera.cullingMask = 1 << 16;
SweepFrequencyBandTo();
}
});
toggle2.onValueChanged.AddListener((ison) =>
@ -114,6 +119,7 @@ public class Spectrumdetection : MonoBehaviour
{
Frequency = "L";
camera.cullingMask = 1 << 17;
SweepFrequencyBandTo();
}
});
toggle3.onValueChanged.AddListener((ison) =>
@ -122,6 +128,7 @@ public class Spectrumdetection : MonoBehaviour
{
Frequency = "S";
camera.cullingMask = 1 << 18;
SweepFrequencyBandTo();
}
});
toggle4.onValueChanged.AddListener((ison) =>
@ -130,6 +137,7 @@ public class Spectrumdetection : MonoBehaviour
{
Frequency = "C";
camera.cullingMask = 1 << 19;
SweepFrequencyBandTo();
}
});
toggle5.onValueChanged.AddListener((ison) =>
@ -138,6 +146,7 @@ public class Spectrumdetection : MonoBehaviour
{
Frequency = "X";
camera.cullingMask = 1 << 20;
SweepFrequencyBandTo();
}
});
toggle6.onValueChanged.AddListener((ison) =>
@ -146,6 +155,7 @@ public class Spectrumdetection : MonoBehaviour
{
Frequency = "Ku";
camera.cullingMask = 1 << 21;
SweepFrequencyBandTo();
}
});
toggle7.onValueChanged.AddListener((ison) =>
@ -154,10 +164,31 @@ public class Spectrumdetection : MonoBehaviour
{
Frequency = "Ka";
camera.cullingMask = (1 << 22);
SweepFrequencyBandTo();
}
});
}
public void SweepFrequencyBandTo()
{
string nowData = GetSyncDataThree();
DeviceManager.Instance.send2roomStr.Enqueue(nowData);
}
public void CameraFrequency(string _frequency)
{
int layerValue = LayerMask.NameToLayer(_frequency);
Frequency = _frequency;
camera.cullingMask = (1 << layerValue);
}
/// <summary>
/// 设置扫描频段同步
/// </summary>
/// <returns></returns>
protected string GetSyncDataThree()
{
return string.Format("{0},{1},{2},{3}", "SweepFrequencyBand", "PPTC", equipmentCommon.deviceID, Frequency);
}
/// <summary>
/// 演习是否启动
/// </summary>
@ -355,6 +386,13 @@ public class Spectrumdetection : MonoBehaviour
}
private void OnDestroy()
{
for(int i = 0; i < spectrumdetections.Count; i++)
{
if (spectrumdetections[i] == null)
{
spectrumdetections.RemoveAt(i);
}
}
Destroy(Frequencyiamge.gameObject);
OnActivationChanged -= OnActivationChangedHandler;
}

View File

@ -332,6 +332,24 @@ public class GameManager : MonoSingleton<GameManager>
}
}
break;
case "SweepFrequencyBand"://设备探测频段设置
if (data[1] == "WRJ")
{
UnmannedAerialVehicleManage unmannedAerialVehicleManage = UnmannedAerialVehicleManage.unmannedAerialVehicleManages.Find(x => x.equipmentCommon.deviceID == data[2]);
if (unmannedAerialVehicleManage)
{
unmannedAerialVehicleManage.SurveillanceFrequency(data[3]);
}
}
else if (data[1] == "PPTC")
{
Spectrumdetection spectrumdetection = Spectrumdetection.spectrumdetections.Find(x => x.equipmentCommon.deviceID == data[2]);
if (spectrumdetection)
{
spectrumdetection.CameraFrequency(data[3]);
}
}
break;
default:
break;

View File

@ -231,9 +231,18 @@ public class UnmannedAerialVehicleManage : MonoBehaviour
electronicReconnaissanceCapability = change.transform.name;
int layerValue = LayerMask.NameToLayer(electronicReconnaissanceCapability);
dzWRJCamera.cullingMask = 1 << layerValue;
string nowData = GetSyncDataThree();
DeviceManager.Instance.send2roomStr.Enqueue(nowData);
}
}
public void SurveillanceFrequency(string _frequency)
{
int layerValue = LayerMask.NameToLayer(_frequency);
electronicReconnaissanceCapability = _frequency;
dzWRJCamera.cullingMask = 1 << layerValue;
}
[ContextMenu("Test")]
public void Test()
{
@ -415,10 +424,23 @@ public class UnmannedAerialVehicleManage : MonoBehaviour
attackTarget.position.x, attackTarget.position.y, attackTarget.position.z);
}
/// <summary>
/// 设置频段同步
/// </summary>
/// <returns></returns>
protected string GetSyncDataTwo()
{
return string.Format("{0},{1},{2},{3}", "BandSetting", "WRJ", equipmentCommon.deviceID, dataLinkCommunicationFrequency);
}
/// <summary>
/// 设置扫描频段同步
/// </summary>
/// <returns></returns>
protected string GetSyncDataThree()
{
return string.Format("{0},{1},{2},{3}", "SweepFrequencyBand", "WRJ", equipmentCommon.deviceID, dataLinkCommunicationFrequency);
}
#region
/// <summary>
/// 导条变化调用
@ -988,6 +1010,13 @@ public class UnmannedAerialVehicleManage : MonoBehaviour
}
private void OnDestroy()
{
for (int i = 0; i < unmannedAerialVehicleManages.Count; i++)
{
if (unmannedAerialVehicleManages[i] == null)
{
unmannedAerialVehicleManages.RemoveAt(i);
}
}
StopCoroutine(ShowRadarTips(0, 0));
OnActivationChanged -= OnActivationChangedHandler;
Destroy(airRoute.gameObject);