攻击目标

This commit is contained in:
账号名 2023-11-23 14:54:12 +08:00
parent cd148c30b5
commit 28e5546467
2 changed files with 25 additions and 17 deletions

View File

@ -82,7 +82,7 @@ public class EquipmentCommon : MonoBehaviour
latestData = GetSyncData(); latestData = GetSyncData();
InvokeRepeating("SendMsg", 0, 0.01f); InvokeRepeating("SendMsg", 0, 0.01f);
UnmannedAerialVehicleManage unmannedAerialVehicleManage = GetComponent<UnmannedAerialVehicleManage>(); UnmannedAerialVehicleManage unmannedAerialVehicleManage = GetComponent<UnmannedAerialVehicleManage>();
unmannedAerialVehicleManage.unmannedAerialVehicles.ForEach(x => x.AddSendMsg());//每个无人机位置传递开启 //unmannedAerialVehicleManage.unmannedAerialVehicles.ForEach(x => x.AddSendMsg());//每个无人机位置传递开启
} }
} }
/// <summary> /// <summary>
@ -214,10 +214,8 @@ public class EquipmentCommon : MonoBehaviour
UnmannedAerialVehicle unmannedAerialVehicle = unmannedAerialVehicleManage.unmannedAerialVehicles.Find(x => x.serialNumber == data[2]); UnmannedAerialVehicle unmannedAerialVehicle = unmannedAerialVehicleManage.unmannedAerialVehicles.Find(x => x.serialNumber == data[2]);
if (unmannedAerialVehicle) if (unmannedAerialVehicle)
{ {
Vector3 localPos = new Vector3(float.Parse(data[3]), float.Parse(data[4]), float.Parse(data[5])); Vector3 Pos = 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.AttAck(Pos);
unmannedAerialVehicle.transform.localPosition = localPos;
unmannedAerialVehicle.transform.localEulerAngles = localRot;
} }
} }
break; break;

View File

@ -123,6 +123,7 @@ public class UnmannedAerialVehicle : MonoBehaviour
{ {
Debug.Log("开始攻击目标..:" + target.name); Debug.Log("开始攻击目标..:" + target.name);
Vector3 _v3 = target.position; Vector3 _v3 = target.position;
SendMsg(target);
transform.DOLookAt(_v3, 0.1f).OnComplete(() => transform.DOLookAt(_v3, 0.1f).OnComplete(() =>
{ {
float distance = Vector3.Distance(transform.position, target.position); float distance = Vector3.Distance(transform.position, target.position);
@ -136,6 +137,20 @@ public class UnmannedAerialVehicle : MonoBehaviour
}); });
} }
/// <summary>
/// 发起攻击
/// </summary>
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) private void OnTriggerEnter(Collider other)
{ {
@ -248,14 +263,10 @@ public class UnmannedAerialVehicle : MonoBehaviour
//位置实时传送 //位置实时传送
private string latestData = ""; private string latestData = "";
public void AddSendMsg()
public void SendMsg(Transform attackTarget)
{ {
latestData = GetSyncData(); var nowData = GetSyncData(attackTarget);
InvokeRepeating("SendMsg", 0, 0.01f);
}
public void SendMsg()
{
var nowData = GetSyncData();
if (!nowData.Equals(latestData)) if (!nowData.Equals(latestData))
{ {
latestData = nowData; latestData = nowData;
@ -266,14 +277,13 @@ public class UnmannedAerialVehicle : MonoBehaviour
/// <summary> /// <summary>
/// 单个无人机位置传递 /// 单个无人机攻击目标传递
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
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, return string.Format("{0},{1},{2},{3},{4},{5}", "SingleDronePosition", unmannedAerialVehicleManage.equipmentCommon.deviceID, serialNumber,
transform.localPosition.x, transform.localPosition.y, transform.localPosition.z, attackTarget.position.x, attackTarget.position.y, attackTarget.position.z);
transform.localEulerAngles.x, transform.localEulerAngles.y, transform.localEulerAngles.z);
} }