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

112 lines
3.8 KiB
C#

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