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 class Spectrumdetection : MonoBehaviour
{ {
public static List<Spectrumdetection> spectrumdetections=new List<Spectrumdetection>();
public EquipmentCommon equipmentCommon; public EquipmentCommon equipmentCommon;
#region #region
/// <summary> /// <summary>
@ -87,6 +90,7 @@ public class Spectrumdetection : MonoBehaviour
public Camera camera; public Camera camera;
void Start() void Start()
{ {
spectrumdetections.Add(this);
equipmentCommon = GetComponent<EquipmentCommon>(); equipmentCommon = GetComponent<EquipmentCommon>();
// 订阅布尔值变化事件 // 订阅布尔值变化事件
OnActivationChanged += OnActivationChangedHandler; OnActivationChanged += OnActivationChangedHandler;
@ -106,6 +110,7 @@ public class Spectrumdetection : MonoBehaviour
{ {
Frequency = "HUF"; Frequency = "HUF";
camera.cullingMask = 1 << 16; camera.cullingMask = 1 << 16;
SweepFrequencyBandTo();
} }
}); });
toggle2.onValueChanged.AddListener((ison) => toggle2.onValueChanged.AddListener((ison) =>
@ -114,6 +119,7 @@ public class Spectrumdetection : MonoBehaviour
{ {
Frequency = "L"; Frequency = "L";
camera.cullingMask = 1 << 17; camera.cullingMask = 1 << 17;
SweepFrequencyBandTo();
} }
}); });
toggle3.onValueChanged.AddListener((ison) => toggle3.onValueChanged.AddListener((ison) =>
@ -122,6 +128,7 @@ public class Spectrumdetection : MonoBehaviour
{ {
Frequency = "S"; Frequency = "S";
camera.cullingMask = 1 << 18; camera.cullingMask = 1 << 18;
SweepFrequencyBandTo();
} }
}); });
toggle4.onValueChanged.AddListener((ison) => toggle4.onValueChanged.AddListener((ison) =>
@ -130,6 +137,7 @@ public class Spectrumdetection : MonoBehaviour
{ {
Frequency = "C"; Frequency = "C";
camera.cullingMask = 1 << 19; camera.cullingMask = 1 << 19;
SweepFrequencyBandTo();
} }
}); });
toggle5.onValueChanged.AddListener((ison) => toggle5.onValueChanged.AddListener((ison) =>
@ -138,6 +146,7 @@ public class Spectrumdetection : MonoBehaviour
{ {
Frequency = "X"; Frequency = "X";
camera.cullingMask = 1 << 20; camera.cullingMask = 1 << 20;
SweepFrequencyBandTo();
} }
}); });
toggle6.onValueChanged.AddListener((ison) => toggle6.onValueChanged.AddListener((ison) =>
@ -146,6 +155,7 @@ public class Spectrumdetection : MonoBehaviour
{ {
Frequency = "Ku"; Frequency = "Ku";
camera.cullingMask = 1 << 21; camera.cullingMask = 1 << 21;
SweepFrequencyBandTo();
} }
}); });
toggle7.onValueChanged.AddListener((ison) => toggle7.onValueChanged.AddListener((ison) =>
@ -154,10 +164,31 @@ public class Spectrumdetection : MonoBehaviour
{ {
Frequency = "Ka"; Frequency = "Ka";
camera.cullingMask = (1 << 22); 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>
/// 演习是否启动 /// 演习是否启动
/// </summary> /// </summary>
@ -355,6 +386,13 @@ public class Spectrumdetection : MonoBehaviour
} }
private void OnDestroy() private void OnDestroy()
{ {
for(int i = 0; i < spectrumdetections.Count; i++)
{
if (spectrumdetections[i] == null)
{
spectrumdetections.RemoveAt(i);
}
}
Destroy(Frequencyiamge.gameObject); Destroy(Frequencyiamge.gameObject);
OnActivationChanged -= OnActivationChangedHandler; OnActivationChanged -= OnActivationChangedHandler;
} }

View File

@ -332,6 +332,24 @@ public class GameManager : MonoSingleton<GameManager>
} }
} }
break; 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: default:
break; break;

View File

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