NewN_UAVPlane/Assets/Zion/Scripts/ModelFunction/SingleMachineTest.cs

143 lines
4.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 单机测试脚本
/// </summary>
public class SingleMachineTest : MonoBehaviour
{
/// <summary>
/// 无人机
/// </summary>
public List<UnmannedAerialVehicleManage> unmannedAerialVehicleManages = new List<UnmannedAerialVehicleManage>();
/// <summary>
/// 雷达控制
/// </summary>
public List<RadarManger> radarMangers = new List<RadarManger>();
/// <summary>
/// 激光火控平台
/// </summary>
public List<LaserFireControlPlatformManger> laserFireControlPlatformMangers = new List<LaserFireControlPlatformManger>();
/// <summary>
/// 地面无线电干扰控制
/// </summary>
public List<TerrestrialRadioInterferenceManger> terrestrialRadioInterferenceMangers = new List<TerrestrialRadioInterferenceManger>();
private Coroutine timerCoroutine; // 协程对象
private bool isTimerRunning = false; // 定时器运行状态
public float interval = 2.0f; // 间隔时间
/// <summary>
/// 测试用
/// </summary>
public string msg1;
/// <summary>
/// 测试接受数据
/// </summary>
private Weaponitemone weaponitemones1;
/// <summary>
/// 测试用
/// </summary>
public string msg2;
/// <summary>
/// 测试接受数据
/// </summary>
private Weaponitemone weaponitemones2;
/// <summary>
/// 测试用
/// </summary>
public string msg3;
/// <summary>
/// 测试接受数据
/// </summary>
private Weaponitemone weaponitemones3;
/// <summary>
/// 测试用
/// </summary>
public string msg4;
/// <summary>
/// 测试接受数据
/// </summary>
private Weaponitemone weaponitemones4;
void Start()
{
weaponitemones1 = Newtonsoft.Json.JsonConvert.DeserializeObject<Weaponitemone>(msg1);
weaponitemones2 = Newtonsoft.Json.JsonConvert.DeserializeObject<Weaponitemone>(msg2);
weaponitemones3 = Newtonsoft.Json.JsonConvert.DeserializeObject<Weaponitemone>(msg3);
weaponitemones4 = Newtonsoft.Json.JsonConvert.DeserializeObject<Weaponitemone>(msg4);
//unmannedAerialVehicleManages.ForEach(x => x.FillInTheData(weaponitemones1));
//radarMangers.ForEach(x => x.FillInTheData(weaponitemones2));
//laserFireControlPlatformMangers.ForEach(x => x.FillInTheData(weaponitemones3));
//terrestrialRadioInterferenceMangers.ForEach(x => x.FillInTheData(weaponitemones4));
// 开始协程
StartTimer();
}
void FixedUpdate()
{
// 按下空格键来切换定时器的运行状态
if (Input.GetKeyDown(KeyCode.Space))
{
if (isTimerRunning)
{
// 暂停定时器
Debug.Log("暂停定时器执行调用: " + Time.time);
StopTimer();
}
else
{
// 继续定时器
Debug.Log("继续定时器执行调用: " + Time.time);
StartTimer();
}
}
}
IEnumerator Timer()
{
while (true)
{
//Debug.Log("执行调用: " + Time.time);
yield return new WaitForSeconds(interval); // 等待一段时间后继续执行
}
}
/// <summary>
/// 启动演练
/// </summary>
void StartTimer()
{
if (timerCoroutine == null)
{
timerCoroutine = StartCoroutine(Timer());
isTimerRunning = true;
unmannedAerialVehicleManages.ForEach(x => x.isStartRehearsing = true);
radarMangers.ForEach(x => x.isStartRehearsing = true);
laserFireControlPlatformMangers.ForEach(x => x.isStartRehearsing = true);
terrestrialRadioInterferenceMangers.ForEach(x => x.isStartRehearsing = true);
}
}
/// <summary>
/// 暂停演练
/// </summary>
void StopTimer()
{
if (timerCoroutine != null)
{
StopCoroutine(timerCoroutine);
timerCoroutine = null;
isTimerRunning = false;
unmannedAerialVehicleManages.ForEach(x => x.isStartRehearsing = false);
radarMangers.ForEach(x => x.isStartRehearsing = false);
laserFireControlPlatformMangers.ForEach(x => x.isStartRehearsing = false);
terrestrialRadioInterferenceMangers.ForEach(x => x.isStartRehearsing = false);
}
}
}