From 28e554646789143876af1c53d54045c6b7df6d8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E5=90=8D?= <3077614386@qq.com> Date: Thu, 23 Nov 2023 14:54:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=BB=E5=87=BB=E7=9B=AE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scripts/ModelFunction/EquipmentCommon.cs | 8 ++--- .../UAV/UnmannedAerialVehicle.cs | 34 ++++++++++++------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/Assets/Zion/Scripts/ModelFunction/EquipmentCommon.cs b/Assets/Zion/Scripts/ModelFunction/EquipmentCommon.cs index 7e46a99d..9f0f9031 100644 --- a/Assets/Zion/Scripts/ModelFunction/EquipmentCommon.cs +++ b/Assets/Zion/Scripts/ModelFunction/EquipmentCommon.cs @@ -82,7 +82,7 @@ public class EquipmentCommon : MonoBehaviour latestData = GetSyncData(); InvokeRepeating("SendMsg", 0, 0.01f); UnmannedAerialVehicleManage unmannedAerialVehicleManage = GetComponent(); - unmannedAerialVehicleManage.unmannedAerialVehicles.ForEach(x => x.AddSendMsg());//每个无人机位置传递开启 + //unmannedAerialVehicleManage.unmannedAerialVehicles.ForEach(x => x.AddSendMsg());//每个无人机位置传递开启 } } /// @@ -214,10 +214,8 @@ public class EquipmentCommon : MonoBehaviour UnmannedAerialVehicle unmannedAerialVehicle = unmannedAerialVehicleManage.unmannedAerialVehicles.Find(x => x.serialNumber == data[2]); if (unmannedAerialVehicle) { - Vector3 localPos = new Vector3(float.Parse(data[3]), float.Parse(data[4]), float.Parse(data[5])); - Vector3 localRot = new Vector3(float.Parse(data[6]), float.Parse(data[7]), float.Parse(data[8])); - unmannedAerialVehicle.transform.localPosition = localPos; - unmannedAerialVehicle.transform.localEulerAngles = localRot; + Vector3 Pos = new Vector3(float.Parse(data[3]), float.Parse(data[4]), float.Parse(data[5])); + unmannedAerialVehicle.AttAck(Pos); } } break; diff --git a/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicle.cs b/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicle.cs index 2998fa3e..da688bec 100644 --- a/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicle.cs +++ b/Assets/Zion/Scripts/ModelFunction/UAV/UnmannedAerialVehicle.cs @@ -123,6 +123,7 @@ public class UnmannedAerialVehicle : MonoBehaviour { Debug.Log("开始攻击目标..:" + target.name); Vector3 _v3 = target.position; + SendMsg(target); transform.DOLookAt(_v3, 0.1f).OnComplete(() => { float distance = Vector3.Distance(transform.position, target.position); @@ -136,6 +137,20 @@ public class UnmannedAerialVehicle : MonoBehaviour }); } + /// + /// 发起攻击 + /// + public void AttAck(Vector3 target) + { + transform.DOLookAt(target, 0.1f).OnComplete(() => + { + float distance = Vector3.Distance(transform.position, target); + transform.DOMove(target, distance / FireSpeed).SetEase(Ease.Linear).OnComplete(() => + { + + }); + }); + } private void OnTriggerEnter(Collider other) { @@ -248,14 +263,10 @@ public class UnmannedAerialVehicle : MonoBehaviour //位置实时传送 private string latestData = ""; - public void AddSendMsg() + + public void SendMsg(Transform attackTarget) { - latestData = GetSyncData(); - InvokeRepeating("SendMsg", 0, 0.01f); - } - public void SendMsg() - { - var nowData = GetSyncData(); + var nowData = GetSyncData(attackTarget); if (!nowData.Equals(latestData)) { latestData = nowData; @@ -266,14 +277,13 @@ public class UnmannedAerialVehicle : MonoBehaviour /// - /// 单个无人机位置传递 + /// 单个无人机攻击目标传递 /// /// - protected string GetSyncData() + protected string GetSyncData(Transform attackTarget) { - return string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8}", "SingleDronePosition", unmannedAerialVehicleManage.equipmentCommon.deviceID, serialNumber, - transform.localPosition.x, transform.localPosition.y, transform.localPosition.z, - transform.localEulerAngles.x, transform.localEulerAngles.y, transform.localEulerAngles.z); + return string.Format("{0},{1},{2},{3},{4},{5}", "SingleDronePosition", unmannedAerialVehicleManage.equipmentCommon.deviceID, serialNumber, + attackTarget.position.x, attackTarget.position.y, attackTarget.position.z); }