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) if (isStartRehearsing)
{ {
minCamera.gameObject.SetActive(true); 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) foreach (Transform child in rawImage.transform)
{ {
@ -187,30 +187,14 @@ public class RadarManger : MonoBehaviour
// onlyOne = false; // onlyOne = false;
// DroneViewDisplay.Instance.CreateUI(equipmentCommon.deviceID, minCamera, rawImage); // DroneViewDisplay.Instance.CreateUI(equipmentCommon.deviceID, minCamera, rawImage);
//} //}
Deadzone();//雷达盲区 //Deadzone();//雷达盲区
//if (Mapsize >1) //if (Mapsize >1)
//{ //{
// Dotsize();//改变雷达地图上显示无人机大小 // 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 #region
@ -270,13 +254,6 @@ public class RadarManger : MonoBehaviour
} }
#endregion #endregion
void CreateRadarUI()
{
imageprs.transform.localScale = Vector3.zero;
aniRandarUI = imageprs.GetComponent<Animator>();
RadarRotationSpeed(TurntableSpeed);
}
/// <summary> /// <summary>
/// 数据写入 /// 数据写入
/// </summary> /// </summary>
@ -289,11 +266,11 @@ public class RadarManger : MonoBehaviour
{ {
case "转台转速:": case "转台转速:":
TurntableSpeed = weaponitemone[i].para_value; TurntableSpeed = weaponitemone[i].para_value;
//RadarRotationSpeed(TurntableSpeed); RadarRotationSpeed(TurntableSpeed);
break; break;
case "探测距离:": case "探测距离:":
DetectionRange = weaponitemone[i].para_value; DetectionRange = weaponitemone[i].para_value;
Showmap(float.Parse(DetectionRange)); //Showmap(float.Parse(DetectionRange));
detectionRadius = float.Parse(DetectionRange) * 1000; detectionRadius = float.Parse(DetectionRange) * 1000;
minCamera.orthographicSize = detectionRadius; minCamera.orthographicSize = detectionRadius;
break; 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> /// <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>
/// 检索 /// 检索
/// </summary> /// </summary>
public void RetrievalUAV() public void RetrievalUAV()
{ {
colliders = Physics.OverlapSphere(transform.position, detectionRadius).ToList(); // 检索范围内的所有碰撞体 if (targets.Count > 0)
var colliders2 = colliders.FindAll(x => x.tag == "WRJ");
if (colliders2.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) if (unmannedAerialVehicle)
{ {
bool isnearBlindArea = Vector3.Distance(transform.position, unmannedAerialVehicle.transform.position) > nearBlindArea; bool isnearBlindArea = Vector3.Distance(transform.position, unmannedAerialVehicle.transform.position) > nearBlindArea;
if (!isnearBlindArea) if (!isnearBlindArea)
continue; continue;
attackColliders1.Add(colliders[i]);
LaserFireControlPlatformManger laserFireControlPlatformManger = LaserFireControlPlatformManger.laserFireControlPlatformMangers.Find(x => (x != null && x.isLasing == false && x.lasertime <= 0)); 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); Microwaveweapon microwaveweapon = Microwaveweapon.MicrowaveweaponList.Find(x => x != null && x.ismicow == false);
if (laserFireControlPlatformManger) 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>
/// 雷达盲区让目标消失在地图上 /// 雷达盲区让目标消失在地图上
/// </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) if(obj.GetComponent<UnmannedAerialVehicleManage>()
{ && obj.GetComponent<UnmannedAerialVehicleManage>().GetRCS() > rcs
Collider[] colliders = Physics.OverlapSphere(transform.position, float.Parse(NearBlindArea)); && Vector3.Distance(transform.position,obj.transform.position)> float.Parse(NearBlindArea))
for (int i = 0; i < colliders.Length; i++) return true;
{ else
if (colliders[i].transform.gameObject.tag == "WRJ") return false;
{
//Debug.Log("进来了" + Vector3.Distance(transform.position, colliders[i].transform.position));
UnmannedAerialVehicleManage unmannedAerialVehicle = colliders[i].GetComponent<UnmannedAerialVehicleManage>();
if (unmannedAerialVehicle)
{
unmannedAerialVehicle.gamemap.SetActive(false);
}
}
}
}
} }
/// <summary> /// <summary>
/// 检测鼠标点击的方法 /// 检测鼠标点击的方法