diff --git a/Assets/GameAssets/Prefebs/Models/WRJ/Point.prefab b/Assets/GameAssets/Prefebs/Models/WRJ/Point.prefab new file mode 100644 index 00000000..cbbb92f0 --- /dev/null +++ b/Assets/GameAssets/Prefebs/Models/WRJ/Point.prefab @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1365749457141817093 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3817412841511205130} + - component: {fileID: 5203452252080208930} + - component: {fileID: 8529437687840462685} + m_Layer: 12 + m_Name: Point + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3817412841511205130 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1365749457141817093} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 14.56, y: 24.54} + m_SizeDelta: {x: 4.9654884, y: 4.9654884} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5203452252080208930 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1365749457141817093} + m_CullTransparentMesh: 0 +--- !u!114 &8529437687840462685 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1365749457141817093} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.39200455, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/GameAssets/Prefebs/Models/WRJ/Point.prefab.meta b/Assets/GameAssets/Prefebs/Models/WRJ/Point.prefab.meta new file mode 100644 index 00000000..194a9c0a --- /dev/null +++ b/Assets/GameAssets/Prefebs/Models/WRJ/Point.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: be4c1bc58430fdd42afb2afab9b4de0b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameAssets/Prefebs/Models/WRJ/RadioAngleView.prefab b/Assets/GameAssets/Prefebs/Models/WRJ/RadioAngleView.prefab index 01d0e8c5..b0df6ec5 100644 --- a/Assets/GameAssets/Prefebs/Models/WRJ/RadioAngleView.prefab +++ b/Assets/GameAssets/Prefebs/Models/WRJ/RadioAngleView.prefab @@ -52,7 +52,7 @@ MonoBehaviour: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5661051785896792237} - m_Enabled: 1 + m_Enabled: 0 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} m_Name: @@ -286,6 +286,10 @@ MonoBehaviour: btnAmplification: {fileID: 5661051786863276579} btnClose: {fileID: 5661051786339230469} rawShow: {fileID: 5661051785896792235} + uavm: {fileID: 0} + targetPointPrefab: {fileID: 1365749457141817093, guid: be4c1bc58430fdd42afb2afab9b4de0b, + type: 3} + targets: [] --- !u!1 &5661051786674650808 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/GameAssets/Prefebs/Models/moder/无人机List.prefab b/Assets/GameAssets/Prefebs/Models/moder/无人机List.prefab index 3e185326..846e1bba 100644 --- a/Assets/GameAssets/Prefebs/Models/moder/无人机List.prefab +++ b/Assets/GameAssets/Prefebs/Models/moder/无人机List.prefab @@ -723,7 +723,7 @@ TextMesh: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3076048921576049840} - m_Text: "\u7535\u5B50\u4FA6\u5BDF\u65E0\u4EBA\u673A" + m_Text: m_OffsetZ: 0 m_CharacterSize: 1 m_LineSpacing: 1 @@ -1630,12 +1630,6 @@ MonoBehaviour: m_Bits: 0 boisp: 1 attackColliders1: [] - targets: [] - radarCenter: {fileID: 0} - radarBackground: {fileID: 0} - targetPointPrefab: {fileID: 748507237023375508, guid: 255976aaa04a95c4fb382c39e411b935, - type: 3} - radarBaseMap: {fileID: 0} currentCollider: {fileID: 0} layerMask: serializedVersion: 2 diff --git a/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicle.cs b/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicle.cs index 753f36ff..e1ded4c4 100644 --- a/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicle.cs +++ b/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicle.cs @@ -241,7 +241,7 @@ public class UnmannedAerialVehicle : MonoBehaviour void OnDestroy() { attackTarget = null; - StopCoroutine(RangedAttack()); + //StopCoroutine(RangedAttack()); transform.DOKill(); } @@ -258,15 +258,15 @@ public class UnmannedAerialVehicle : MonoBehaviour Vector3 _v3 = attackTarget.position; transform.DOLookAt(_v3, 0.1f).OnComplete(() => { - //if (wrjModel == WRJModel.光学无人机) - //{ - // Debug.Log("光学无人机攻击"); - // StopCoroutine(RangedAttack()); - // StartCoroutine(RangedAttack()); - //} - //else - //{ - string nowData = GetSyncData(attackTarget); + if (wrjModel == WRJModel.光学无人机) + { + Debug.Log("光学无人机攻击"); + StopCoroutine(RangedAttack()); + StartCoroutine(RangedAttack()); + } + else + { + string nowData = GetSyncData(attackTarget); Debug.Log(nowData); MyNetMQClient.instance.Send(nowData); //_ = SyncCreateRoom.SendMessageAsync(string.Format("send2room {0}", nowData)); @@ -280,7 +280,7 @@ public class UnmannedAerialVehicle : MonoBehaviour // //BeAssaulted("没有攻击到目标"); //} }); - //} + } }); } } diff --git a/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicleManage.cs b/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicleManage.cs index 02afc181..34893feb 100644 --- a/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicleManage.cs +++ b/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicleManage.cs @@ -489,50 +489,9 @@ public class UnmannedAerialVehicleManage : MonoBehaviour public List attackColliders1 = new List(); - public List targets = new List(); - public Transform radarCenter; - public Image radarBackground; - public GameObject targetPointPrefab; - public RawImage radarBaseMap; - /// - /// 获取所有符合条件的设备 - /// - /// - public bool GetQualifiedEquipment(Collider obj) - { - if (obj!=null) - { - if (obj.gameObject.tag == "AttackTarget" - && !obj.isTrigger - && !attackColliders1.Contains(obj) - && obj.transform.GetComponent() - && obj.transform.GetComponent().frequency.Contains(electronicReconnaissanceCapability)) - - return true; - else - return false; - } - return false; - } - /// - /// 在UI图上显示雷达点 - /// - public void ShowRadarPoint() - { - foreach (Transform child in radarBaseMap.transform) - { - Destroy(child.gameObject); - } - - foreach (Collider target in targets) - { - Vector3 relativePosition = target.transform.position - radarCenter.position; - Vector2 radarPosition = new Vector2(relativePosition.x, relativePosition.z) * 0.1f; - GameObject point = Instantiate(targetPointPrefab, radarBaseMap.transform); - RectTransform rt = point.GetComponent(); - rt.anchoredPosition = radarPosition; - } - } + + + /// /// 攻击打击 @@ -545,11 +504,10 @@ public class UnmannedAerialVehicleManage : MonoBehaviour if (wrjModel == WRJModel.电子侦察无人机) { List allColliders = Physics.OverlapSphere(transform.position, Spectrumdetection.Radius * 1000).ToList(); // 检索范围内的所有碰撞体 - targets = allColliders.FindAll(GetQualifiedEquipment); - ShowRadarPoint(); - for (int i = 0; i < targets.Count; i++) + + for (int i = 0; i < allColliders.Count; i++) { - attackColliders1.Add(targets[i]); + attackColliders1.Add(allColliders[i]); } } else if (wrjModel == WRJModel.光学无人机) diff --git a/Assets/Zion/Scripts/WRJ0125/DroneViewDisplay.cs b/Assets/Zion/Scripts/WRJ0125/DroneViewDisplay.cs index f74628e3..e9be0b7d 100644 --- a/Assets/Zion/Scripts/WRJ0125/DroneViewDisplay.cs +++ b/Assets/Zion/Scripts/WRJ0125/DroneViewDisplay.cs @@ -70,8 +70,8 @@ public class DroneViewDisplay : MonoSingleton radioAngleView.transform.SetAsFirstSibling(); // 移到父物体的第一个位置 radioAngleView.transform.localScale = Vector3.one; textNmme.text = unmannedAerialVehicleManage.transform.name; - rawShow.texture = unmannedAerialVehicleManage.wrjModel == WRJModel.电子侦察无人机 ? - unmannedAerialVehicleManage.dzWRJCamera.targetTexture : unmannedAerialVehicleManage.gxWRJCamera.targetTexture; + //rawShow.texture = unmannedAerialVehicleManage.wrjModel == WRJModel.电子侦察无人机 ? + // unmannedAerialVehicleManage.dzWRJCamera.targetTexture : unmannedAerialVehicleManage.gxWRJCamera.targetTexture; } else @@ -88,26 +88,25 @@ public class DroneViewDisplay : MonoSingleton radioAngleViewMain.deviceID = unmannedAerialVehicleManage.equipmentCommon.deviceID; radioAngleViewMain.textNmme.text = unmannedAerialVehicleManage.transform.name; radioAngleViewMain.typeWRJ = unmannedAerialVehicleManage.wrjModel; - Mask mask = wrj.transform.GetComponentInChildren(); - if (mask) - mask.enabled = unmannedAerialVehicleManage.wrjModel == WRJModel.电子侦察无人机 ? true : false; + radioAngleViewMain.uavm = unmannedAerialVehicleManage; // 创建 RenderTexture RenderTexture renderTexture = new RenderTexture(500, 500, 0); renderTexture.name = unmannedAerialVehicleManage.equipmentCommon.deviceID; - - unmannedAerialVehicleManage.dzWRJCamera.targetTexture = renderTexture; + + //unmannedAerialVehicleManage.dzWRJCamera.targetTexture = renderTexture; unmannedAerialVehicleManage.gxWRJCamera.targetTexture = renderTexture; if (unmannedAerialVehicleManage.wrjModel == WRJModel.电子侦察无人机) { - unmannedAerialVehicleManage.dzWRJCamera.gameObject.SetActive(true); + //unmannedAerialVehicleManage.dzWRJCamera.gameObject.SetActive(true); } else { unmannedAerialVehicleManage.gxWRJCamera.gameObject.SetActive(true); + radioAngleViewMain.rawShow.texture = unmannedAerialVehicleManage.gxWRJCamera.targetTexture; + radioAngleViewMain.rawShow.enabled = true; + wrj.transform.GetComponentInChildren().enabled = false; } - radioAngleViewMain.rawShow.texture = unmannedAerialVehicleManage.wrjModel == WRJModel.电子侦察无人机 ? - unmannedAerialVehicleManage.dzWRJCamera.targetTexture : unmannedAerialVehicleManage.gxWRJCamera.targetTexture; renderTextures.Add(renderTexture); radioAngleViews.Add(radioAngleViewMain); @@ -126,7 +125,7 @@ public class DroneViewDisplay : MonoSingleton public void CreateUI(string deviceID, Camera camera, RawImage rawImage) { if (deviceID.Length < 10) return; - var v = renderTextures.Find(x => (x!=null&&x.name == deviceID)); + var v = renderTextures.Find(x => (x != null && x.name == deviceID)); if (v != null) return; RenderTexture renderTexture = new RenderTexture(500, 500, 0); renderTexture.name = deviceID; diff --git a/Assets/Zion/Scripts/WRJ0125/RadioAngleView.cs b/Assets/Zion/Scripts/WRJ0125/RadioAngleView.cs index 82a6bc54..ff02afc0 100644 --- a/Assets/Zion/Scripts/WRJ0125/RadioAngleView.cs +++ b/Assets/Zion/Scripts/WRJ0125/RadioAngleView.cs @@ -1,5 +1,6 @@ using System.Collections; using System.Collections.Generic; +using System.Linq; using UnityEngine; using UnityEngine.UI; @@ -33,7 +34,11 @@ public class RadioAngleView : MonoBehaviour /// public RawImage rawShow; - + public UnmannedAerialVehicleManage uavm; + + public GameObject targetPointPrefab; + public List targets = new List(); + void Start() { //textNmme=transform.Find("名称").GetComponent(); @@ -51,5 +56,40 @@ public class RadioAngleView : MonoBehaviour transform.SetAsLastSibling();// 移到父物体的最后一个位置 }); } + private void Update() + { + if (typeWRJ != WRJModel.电子侦察无人机) return; + targets = GameObject.FindGameObjectsWithTag("AttackTarget").ToList().FindAll(GetQualifiedEquipment); + if (targets.Count == 0) return; + foreach (Transform child in rawShow.transform) + { + Destroy(child.gameObject); + } + + foreach (GameObject target in targets) + { + Vector3 relativePosition = target.transform.position - uavm.transform.position; + Vector2 radarPosition = new Vector2(relativePosition.x, relativePosition.z) * 0.1f; + GameObject point = Instantiate(targetPointPrefab, rawShow.transform); + RectTransform rt = point.GetComponent(); + rt.anchoredPosition = radarPosition; + } + } + /// + /// 获取符合条件的设备 + /// + public bool GetQualifiedEquipment(GameObject obj) + { + if (obj != null) + { + if (obj.gameObject.tag == "AttackTarget" + && obj.transform.GetComponent() + && obj.transform.GetComponent().frequency.Contains(uavm.electronicReconnaissanceCapability)) + return true; + else + return false; + } + return false; + } }