From 071fe49e5800d70ab33a5020939d2d56b8174f02 Mon Sep 17 00:00:00 2001 From: yulong <1838206582@qq.com> Date: Thu, 28 Mar 2024 14:08:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=BB=E5=87=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prefebs/Models/moder/无人机List.prefab | 4 +- .../LaserFireControlPlatformManger.cs | 27 ++++---- .../ModelFunction/Radar/RadarManger.cs | 61 +++++++++++-------- 3 files changed, 53 insertions(+), 39 deletions(-) diff --git a/Assets/GameAssets/Prefebs/Models/moder/无人机List.prefab b/Assets/GameAssets/Prefebs/Models/moder/无人机List.prefab index 846e1bba..4ee7e1b2 100644 --- a/Assets/GameAssets/Prefebs/Models/moder/无人机List.prefab +++ b/Assets/GameAssets/Prefebs/Models/moder/无人机List.prefab @@ -1486,8 +1486,8 @@ BoxCollider: m_IsTrigger: 0 m_Enabled: 1 serializedVersion: 2 - m_Size: {x: 3.1049147, y: 0.9711163, z: 3.155058} - m_Center: {x: 0.060157776, y: 1.1136094, z: 0.13353431} + m_Size: {x: 3.6864724, y: 1.2080312, z: 3.8562632} + m_Center: {x: 0.09509891, y: 1.1254551, z: 0.1453805} --- !u!114 &4138683085727570685 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Zion/Scripts/ModelFunction/LaserFireControlPlatform/LaserFireControlPlatformManger.cs b/Assets/Zion/Scripts/ModelFunction/LaserFireControlPlatform/LaserFireControlPlatformManger.cs index ee0a73fb..68bf8c1d 100644 --- a/Assets/Zion/Scripts/ModelFunction/LaserFireControlPlatform/LaserFireControlPlatformManger.cs +++ b/Assets/Zion/Scripts/ModelFunction/LaserFireControlPlatform/LaserFireControlPlatformManger.cs @@ -43,7 +43,7 @@ public class LaserFireControlPlatformManger : MonoBehaviour /// 布尔值变化时触发的事件 /// public event System.Action OnActivationChanged; - + /// /// 定时器运行状态 /// @@ -158,6 +158,10 @@ public class LaserFireControlPlatformManger : MonoBehaviour /// 判断物体是否在相机里面 /// public bool ispcamera; + /// + /// 激光武器攻击时间 + /// + public static float timer; void Start() { equipmentCommon = GetComponent(); @@ -183,10 +187,10 @@ public class LaserFireControlPlatformManger : MonoBehaviour OuterLaserlineRenderer.SetPosition(0, LaserPoint.transform.position);// 设置线段起点为物体位置 OuterLaserlineRenderer.SetPosition(1, LaserPoint.transform.position);// 设置线段终点为目标点 } - + } - + void Update() { lasertime -= Time.deltaTime; @@ -197,7 +201,7 @@ public class LaserFireControlPlatformManger : MonoBehaviour } } - + void LateUpdate() { if (Receivingdistance > 0 && isplaser == true) @@ -225,6 +229,7 @@ public class LaserFireControlPlatformManger : MonoBehaviour StorageIntervalTime = weaponitemone[i].para_value; lasertime = float.Parse(StorageIntervalTime); storageIntervalTime = float.Parse(StorageIntervalTime); + timer = storageIntervalTime; break; case "毁伤目标累积作用时间:": CumulativeActionTimeOfDamageTarget = weaponitemone[i].para_value; @@ -234,7 +239,7 @@ public class LaserFireControlPlatformManger : MonoBehaviour Receivingdistance = float.Parse(InterferenceDistance) * 1000; break; - case "干扰角度:": + case "瞬时视场:": InterferenceAngle = weaponitemone[i].para_value; break; default: @@ -243,7 +248,7 @@ public class LaserFireControlPlatformManger : MonoBehaviour } } - + /// /// 看向无人机 @@ -262,7 +267,7 @@ public class LaserFireControlPlatformManger : MonoBehaviour Debug.LogError("没有目标"); } } - + /// /// 激光显示 /// @@ -271,11 +276,11 @@ public class LaserFireControlPlatformManger : MonoBehaviour if (targetPoint != null && Receivingdistance > 0) { Vector3 pos = camera.WorldToViewportPoint(targetPoint.position); - Debug.Log("攻击目标距离"+Vector3.Distance(targetPoint.position, transform.position)); + Debug.Log("攻击目标距离" + Vector3.Distance(targetPoint.position, transform.position)); ispcamera = (pos.x > 0 && pos.x < 1 && pos.y > 0 && pos.y < 1 && pos.z > 0); - if (Vector3.Distance(targetPoint.position, transform.position)< Receivingdistance&&ispcamera) + if (Vector3.Distance(targetPoint.position, transform.position) < Receivingdistance && ispcamera) { - Debug.LogError("出现在摄像机视角里面了"); + Debug.Log("出现在摄像机视角里面了"); Vector3 cector = targetPoint.position - transform.position; float angle = Vector3.Angle(cector, transform.forward); if (float.Parse(InterferenceAngle) > angle) @@ -448,7 +453,7 @@ public class LaserFireControlPlatformManger : MonoBehaviour StartCoroutine(LaserExtinction()); }); } - void OnMouseDown() + void OnMouseDown() { //Transform canvas = GameObject.Find("Canvas").transform; diff --git a/Assets/Zion/Scripts/ModelFunction/Radar/RadarManger.cs b/Assets/Zion/Scripts/ModelFunction/Radar/RadarManger.cs index 1c7e359a..80623186 100644 --- a/Assets/Zion/Scripts/ModelFunction/Radar/RadarManger.cs +++ b/Assets/Zion/Scripts/ModelFunction/Radar/RadarManger.cs @@ -194,7 +194,7 @@ public class RadarManger : MonoBehaviour //} } - + #region 启动暂停 @@ -222,9 +222,15 @@ public class RadarManger : MonoBehaviour while (true) { //Debug.Log("Timer fired at: " + Time.time); - yield return new WaitForSeconds(5); // 等待一段时间后继续执行 - RetrievalUAV(); + + + if (LaserFireControlPlatformManger.timer>0) + { + yield return new WaitForSeconds(LaserFireControlPlatformManger.timer); // 等待一段时间后继续执行 + RetrievalUAV(); + } //Deadzone(); + } } @@ -307,7 +313,7 @@ public class RadarManger : MonoBehaviour } } - + /// /// 雷达转动速度 @@ -335,26 +341,29 @@ public class RadarManger : MonoBehaviour { for (int i = 0; i < targets.Count; i++) { - UnmannedAerialVehicle unmannedAerialVehicle = targets[i].GetComponent(); - if (unmannedAerialVehicle) + if (targets != null) { - bool isnearBlindArea = Vector3.Distance(transform.position, unmannedAerialVehicle.transform.position) > nearBlindArea; - if (!isnearBlindArea) - continue; - 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) + UnmannedAerialVehicle unmannedAerialVehicle = targets[i].transform.Find("无人机").GetComponent(); + if (unmannedAerialVehicle) { - 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(); + bool isnearBlindArea = Vector3.Distance(transform.position, unmannedAerialVehicle.transform.position) > nearBlindArea; + if (!isnearBlindArea) + continue; + 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(); + } } } } @@ -478,14 +487,14 @@ public class RadarManger : MonoBehaviour /// public bool GetQualifiedEquipment(GameObject obj) { - if(obj.GetComponent() + if (obj.GetComponent() && obj.GetComponent().GetRCS() > rcs - && Vector3.Distance(transform.position,obj.transform.position)> float.Parse(NearBlindArea)) + && Vector3.Distance(transform.position, obj.transform.position) > float.Parse(NearBlindArea)) return true; - else + else return false; } - + /// /// 检测鼠标点击的方法