This commit is contained in:
YangHua 2024-03-22 12:54:50 +08:00
parent cd80282d19
commit 892259e6c7
1 changed files with 130 additions and 78 deletions

View File

@ -165,7 +165,7 @@ public class RadarManger : MonoBehaviour
if (isStartRehearsing)
{
minCamera.gameObject.SetActive(true);
targets = GameObject.FindGameObjectsWithTag("WRJ").ToList().FindAll(a => a.GetComponent<UnmannedAerialVehicleManage>().GetRCS() > rcs);
targets = GameObject.FindGameObjectsWithTag("WRJ").ToList().FindAll(GetQualifiedEquipment);
foreach (Transform child in rawImage.transform)
{
@ -187,30 +187,14 @@ public class RadarManger : MonoBehaviour
// onlyOne = false;
// DroneViewDisplay.Instance.CreateUI(equipmentCommon.deviceID, minCamera, rawImage);
//}
Deadzone();//雷达盲区
//Deadzone();//雷达盲区
//if (Mapsize >1)
//{
// Dotsize();//改变雷达地图上显示无人机大小
//}
}
private void Dotsize()
{
GameObject[] wrjdtdx = GameObject.FindGameObjectsWithTag("WRJ");
for (int i = 0; i < wrjdtdx.Length; i++)
{
if (wrjdtdx[i].gameObject.tag == "WRJ" && equipmentCommon.isPlayer)
{
UnmannedAerialVehicleManage unmannedAerialVehicleManage = wrjdtdx[i].GetComponent<UnmannedAerialVehicleManage>();
if (unmannedAerialVehicleManage && unmannedAerialVehicleManage.gamemap)
{
unmannedAerialVehicleManage.gamemap.transform.localScale = new Vector3(Mapsize, 1, Mapsize);
//Debug.Log("改变了无人机显示大小");
}
}
}
}
#region
@ -270,13 +254,6 @@ public class RadarManger : MonoBehaviour
}
#endregion
void CreateRadarUI()
{
imageprs.transform.localScale = Vector3.zero;
aniRandarUI = imageprs.GetComponent<Animator>();
RadarRotationSpeed(TurntableSpeed);
}
/// <summary>
/// 数据写入
/// </summary>
@ -289,11 +266,11 @@ public class RadarManger : MonoBehaviour
{
case "转台转速:":
TurntableSpeed = weaponitemone[i].para_value;
//RadarRotationSpeed(TurntableSpeed);
RadarRotationSpeed(TurntableSpeed);
break;
case "探测距离:":
DetectionRange = weaponitemone[i].para_value;
Showmap(float.Parse(DetectionRange));
//Showmap(float.Parse(DetectionRange));
detectionRadius = float.Parse(DetectionRange) * 1000;
minCamera.orthographicSize = detectionRadius;
break;
@ -330,29 +307,7 @@ public class RadarManger : MonoBehaviour
}
}
private void Showmap(float size)
{
switch (size)
{
case 1:
Mapsize = 30;
break;
case 2:
Mapsize = 60;
break;
case 3:
Mapsize = 90;
break;
case 4:
Mapsize = 120;
break;
case 5:
Mapsize = 150;
break;
default:
break;
}
}
/// <summary>
/// 雷达转动速度
@ -371,28 +326,21 @@ public class RadarManger : MonoBehaviour
}
}
public List<Collider> colliders = new List<Collider>();
public List<Collider> attackColliders1 = new List<Collider>();
/// <summary>
/// 检索
/// </summary>
public void RetrievalUAV()
{
colliders = Physics.OverlapSphere(transform.position, detectionRadius).ToList(); // 检索范围内的所有碰撞体
var colliders2 = colliders.FindAll(x => x.tag == "WRJ");
if (colliders2.Count > 0)
if (targets.Count > 0)
{
for (int i = 0; i < colliders2.Count; i++)
for (int i = 0; i < targets.Count; i++)
{
UnmannedAerialVehicle unmannedAerialVehicle = colliders2[i].GetComponent<UnmannedAerialVehicle>();
UnmannedAerialVehicle unmannedAerialVehicle = targets[i].GetComponent<UnmannedAerialVehicle>();
if (unmannedAerialVehicle)
{
bool isnearBlindArea = Vector3.Distance(transform.position, unmannedAerialVehicle.transform.position) > nearBlindArea;
if (!isnearBlindArea)
continue;
attackColliders1.Add(colliders[i]);
LaserFireControlPlatformManger laserFireControlPlatformManger = LaserFireControlPlatformManger.laserFireControlPlatformMangers.Find(x => (x != null && x.isLasing == false && x.lasertime <= 0));
Microwaveweapon microwaveweapon = Microwaveweapon.MicrowaveweaponList.Find(x => x != null && x.ismicow == false);
if (laserFireControlPlatformManger)
@ -412,28 +360,132 @@ public class RadarManger : MonoBehaviour
}
}
}
#region
// public List<Collider> colliders = new List<Collider>();
// public List<Collider> attackColliders1 = new List<Collider>();
//public void RetrievalUAV()
//{
// colliders = Physics.OverlapSphere(transform.position, detectionRadius).ToList(); // 检索范围内的所有碰撞体
// var colliders2 = colliders.FindAll(x => x.tag == "WRJ");
// if (colliders2.Count > 0)
// {
// for (int i = 0; i < colliders2.Count; i++)
// {
// UnmannedAerialVehicle unmannedAerialVehicle = colliders2[i].GetComponent<UnmannedAerialVehicle>();
// if (unmannedAerialVehicle)
// {
// bool isnearBlindArea = Vector3.Distance(transform.position, unmannedAerialVehicle.transform.position) > nearBlindArea;
// if (!isnearBlindArea)
// continue;
// attackColliders1.Add(colliders[i]);
// LaserFireControlPlatformManger laserFireControlPlatformManger = LaserFireControlPlatformManger.laserFireControlPlatformMangers.Find(x => (x != null && x.isLasing == false && x.lasertime <= 0));
// Microwaveweapon microwaveweapon = Microwaveweapon.MicrowaveweaponList.Find(x => x != null && x.ismicow == false);
// if (laserFireControlPlatformManger)
// {
// laserFireControlPlatformManger.lasertime = laserFireControlPlatformManger.storageIntervalTime + 1.5f;
// laserFireControlPlatformManger.isLasing = true;
// laserFireControlPlatformManger.targetPoint = unmannedAerialVehicle.transform;
// laserFireControlPlatformManger.Lasing();
// }
// else if (microwaveweapon)
// {
// microwaveweapon.ismicow = true;
// microwaveweapon.miceopos = unmannedAerialVehicle.transform;
// microwaveweapon.Orientation();
// }
// }
// }
// }
//}
//private void Showmap(float size)
//{
// switch (size)
// {
// case 1:
// Mapsize = 30;
// break;
// case 2:
// Mapsize = 60;
// break;
// case 3:
// Mapsize = 90;
// break;
// case 4:
// Mapsize = 120;
// break;
// case 5:
// Mapsize = 150;
// break;
// default:
// break;
// }
//}
//void CreateRadarUI()
//{
// imageprs.transform.localScale = Vector3.zero;
// aniRandarUI = imageprs.GetComponent<Animator>();
// RadarRotationSpeed(TurntableSpeed);
//}
//private void Dotsize()
//{
// GameObject[] wrjdtdx = GameObject.FindGameObjectsWithTag("WRJ");
// for (int i = 0; i < wrjdtdx.Length; i++)
// {
// if (wrjdtdx[i].gameObject.tag == "WRJ" && equipmentCommon.isPlayer)
// {
// UnmannedAerialVehicleManage unmannedAerialVehicleManage = wrjdtdx[i].GetComponent<UnmannedAerialVehicleManage>();
// if (unmannedAerialVehicleManage && unmannedAerialVehicleManage.gamemap)
// {
// unmannedAerialVehicleManage.gamemap.transform.localScale = new Vector3(Mapsize, 1, Mapsize);
// //Debug.Log("改变了无人机显示大小");
// }
// }
// }
//}
/// <summary>
/// 雷达盲区让目标消失在地图上
/// </summary>
private void Deadzone()
//private void Deadzone()
//{
// if (float.Parse(NearBlindArea) > 0)
// {
// Collider[] colliders = Physics.OverlapSphere(transform.position, float.Parse(NearBlindArea));
// for (int i = 0; i < colliders.Length; i++)
// {
// if (colliders[i].transform.gameObject.tag == "WRJ")
// {
// //Debug.Log("进来了" + Vector3.Distance(transform.position, colliders[i].transform.position));
// UnmannedAerialVehicleManage unmannedAerialVehicle = colliders[i].GetComponent<UnmannedAerialVehicleManage>();
// if (unmannedAerialVehicle)
// {
// unmannedAerialVehicle.gamemap.SetActive(false);
// }
// }
// }
// }
//}
#endregion
/// <summary>
/// 获取符合条件的设备
/// </summary>
public bool GetQualifiedEquipment(GameObject obj)
{
if (float.Parse(NearBlindArea) > 0)
{
Collider[] colliders = Physics.OverlapSphere(transform.position, float.Parse(NearBlindArea));
for (int i = 0; i < colliders.Length; i++)
{
if (colliders[i].transform.gameObject.tag == "WRJ")
{
//Debug.Log("进来了" + Vector3.Distance(transform.position, colliders[i].transform.position));
UnmannedAerialVehicleManage unmannedAerialVehicle = colliders[i].GetComponent<UnmannedAerialVehicleManage>();
if (unmannedAerialVehicle)
{
unmannedAerialVehicle.gamemap.SetActive(false);
}
}
}
}
if(obj.GetComponent<UnmannedAerialVehicleManage>()
&& obj.GetComponent<UnmannedAerialVehicleManage>().GetRCS() > rcs
&& Vector3.Distance(transform.position,obj.transform.position)> float.Parse(NearBlindArea))
return true;
else
return false;
}
/// <summary>
/// 检测鼠标点击的方法