using System.Collections; using System.Collections.Generic; using UnityEngine; using AdamThinkDevicesData; using AdamSync; /// /// 设备 /// public class EquipmentCommon : MonoBehaviour { public EquipmentCommon equipmentCommon; /// /// 场景所在方 /// public SelectedSide selectedSide = SelectedSide.Other; /// /// 所有设备 /// public static List equipmentCommons = new List(); public string equipmentType = ""; private bool _isStartRehearsing = false; // 布尔值变化时触发的事件 public event System.Action OnActivationChanged; // 属性绑定布尔值,并在值变化时触发事件 public bool isStartRehearsing { get { return _isStartRehearsing; } set { if (_isStartRehearsing != value) { _isStartRehearsing = value; OnActivationChanged?.Invoke(_isStartRehearsing); } } } void Start() { equipmentCommon = GetComponent(); equipmentCommons.Add(this); // 订阅布尔值变化事件 OnActivationChanged += OnActivationChangedHandler; } /// /// /// /// void OnActivationChangedHandler(bool newValue) { 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); } switch (equipmentType) { case "激光火控平台": LaserFireControlPlatformManger laserFireControlPlatformManger = GetComponent(); laserFireControlPlatformManger.isStartRehearsing = isStartRehearsing; break; case "探测雷达": RadarManger radarManger = GetComponent(); radarManger.isStartRehearsing = isStartRehearsing; break; case "地面无线电干扰": TerrestrialRadioInterferenceManger terrestrialRadioInterferenceManger = GetComponent(); terrestrialRadioInterferenceManger.isStartRehearsing = isStartRehearsing; break; case "无人机List": UnmannedAerialVehicleManage unmannedAerialVehicleManage = GetComponent(); unmannedAerialVehicleManage.isStartRehearsing = isStartRehearsing; break; default: break; } } /// /// /// /// public void FillInTheData(List weaponitemone) { 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); } switch (equipmentType) { case "激光火控平台": LaserFireControlPlatformManger laserFireControlPlatformManger = GetComponent(); laserFireControlPlatformManger.FillInTheData(weaponitemone); laserFireControlPlatformManger.isStartRehearsing= isStartRehearsing; break; case "探测雷达": RadarManger radarManger = GetComponent(); radarManger.FillInTheData(weaponitemone); break; case "地面无线电干扰": TerrestrialRadioInterferenceManger terrestrialRadioInterferenceManger = GetComponent(); terrestrialRadioInterferenceManger.FillInTheData(weaponitemone); break; case "无人机List": UnmannedAerialVehicleManage unmannedAerialVehicleManage = GetComponent(); unmannedAerialVehicleManage.FillInTheData(weaponitemone); break; default: break; } } } public enum SelectedSide { Rad, Blue, Director, Other }