using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 单机测试脚本 /// public class SingleMachineTest : MonoBehaviour { /// /// 无人机 /// public List unmannedAerialVehicleManages = new List(); /// /// 雷达控制 /// public List radarMangers = new List(); /// /// 激光火控平台 /// public List laserFireControlPlatformMangers = new List(); /// /// 地面无线电干扰控制 /// public List terrestrialRadioInterferenceMangers = new List(); private Coroutine timerCoroutine; // 协程对象 private bool isTimerRunning = false; // 定时器运行状态 public float interval = 2.0f; // 间隔时间 /// /// 测试用 /// public string msg1; /// /// 测试接受数据 /// private Weaponitemone weaponitemones1; /// /// 测试用 /// public string msg2; /// /// 测试接受数据 /// private Weaponitemone weaponitemones2; /// /// 测试用 /// public string msg3; /// /// 测试接受数据 /// private Weaponitemone weaponitemones3; /// /// 测试用 /// public string msg4; /// /// 测试接受数据 /// private Weaponitemone weaponitemones4; void Start() { weaponitemones1 = Newtonsoft.Json.JsonConvert.DeserializeObject(msg1); weaponitemones2 = Newtonsoft.Json.JsonConvert.DeserializeObject(msg2); weaponitemones3 = Newtonsoft.Json.JsonConvert.DeserializeObject(msg3); weaponitemones4 = Newtonsoft.Json.JsonConvert.DeserializeObject(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); // 等待一段时间后继续执行 } } /// /// 启动演练 /// 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); } } /// /// 暂停演练 /// 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); } } }