This commit is contained in:
YangHua 2024-03-31 18:52:35 +08:00
parent f6f47e348d
commit d208b87aad
3 changed files with 71 additions and 9 deletions

View File

@ -50,7 +50,15 @@ public class Microwaveweapon : MonoBehaviour
if (_isStartRehearsing != value)
{
_isStartRehearsing = value;
OnActivationChanged?.Invoke(_isStartRehearsing);
GameObject[] wrj = GameObject.FindGameObjectsWithTag("WRJ");
for (int i = 0; i < wrj.Length; i++)
{
UnmannedAerialVehicleManage temp = wrj[i].GetComponent<UnmannedAerialVehicleManage>();
temp.limitHealth = float.Parse(Microwavedamagetime);
}
//OnActivationChanged?.Invoke(_isStartRehearsing);
}
}
}
@ -191,7 +199,17 @@ public class Microwaveweapon : MonoBehaviour
}
void Update()
{
if (isStartRehearsing)
{
microwtimer -= Time.deltaTime;
if (microwtimer <= 0)
{
if (ismicow)
{
SelectWRJ();
}
}
}
}
/// <summary>
/// 微波武器朝向无人机
@ -201,9 +219,55 @@ public class Microwaveweapon : MonoBehaviour
if (miceopos != null)
{
microwavepoint.transform.DOLookAt(miceopos.position, 0.1f).SetEase(Ease.Linear);
}
}
public List<UnmannedAerialVehicleManage> wrjList = new List<UnmannedAerialVehicleManage>();
/// <summary>
/// 检索无人机是否符合角度 距离
/// </summary>
private void SelectWRJ()
{
GameObject[] wrj = GameObject.FindGameObjectsWithTag("WRJ");
foreach (var item in wrj)
{
float distance = Vector3.Distance(transform.position, item.transform.position);
float angle = Vector3.Angle(transform.forward, item.transform.position - transform.position);
UnmannedAerialVehicleManage temp = item.GetComponent<UnmannedAerialVehicleManage>();
if (distance < float.Parse(Microwaveinterferencedistance) * 1000 && angle < float.Parse(MicrowaveinterferenceAngle))
{
if (!wrjList.Contains(temp))
{
wrjList.Add(temp);
}
}
else
{
if (wrjList.Contains(temp))
wrjList.Remove(temp);
}
}
if (wrjList.Count > 0)
{
foreach (var item in wrjList)
{
item.limitHealth -= Time.deltaTime;
if (item.limitHealth <= 0)
{
var newdata = Aeroplane(item.unmannedAerialVehicles[0]);
MyNetMQClient.instance.Send(newdata);
DeviceManager.Instance.RemoveDevice(item.gameObject);
Destroy(item.gameObject);
}
}
}
else
{
ismicow = false;
microwtimer = float.Parse(Storageintervaltime);
}
}
/// <summary>
/// 激光发起攻击
/// </summary>
@ -217,8 +281,8 @@ public class Microwaveweapon : MonoBehaviour
MyNetMQClient.instance.Send(newdata);
//_ = SyncCreateRoom.SendMessageAsync(string.Format("send2room {0}", newdata));
//MQTTManager.instance.SendData(MQTTManager.instance.Micow, newdata);
microblog.MicrowaveDisplay(Vector3.Distance(miceopos.position, transform.position) / 10 + 1, 0.5f);
Closeattack(miceopos);
//microblog.MicrowaveDisplay(Vector3.Distance(miceopos.position, transform.position) / 10 + 1, 0.5f);
//Closeattack(miceopos);
}
else
{

View File

@ -169,10 +169,6 @@ public class UnmannedAerialVehicle : MonoBehaviour
highPriorityTarget.BeAssaulted(atkPos, true);
}
GameObject Bao = Instantiate(explodePrefab1, _transform);
Bao.transform.localPosition = Vector3.zero;
Bao.transform.SetParent(null);
Bao.SetActive(true);
if (_equipmentCommon)
{
DeviceManager.Instance.RemoveDevice(_transform.gameObject);

View File

@ -208,6 +208,8 @@ public class UnmannedAerialVehicleManage : MonoBehaviour
/// 改变频谱探测地图上显示点的大小
/// </summary>
public bool boisp = true;
public float limitHealth = 2f;
void Start()
{
//gamePos.gameObject.SetActive(false);
@ -1250,7 +1252,7 @@ public class UnmannedAerialVehicleManage : MonoBehaviour
}
}
public enum Pattern
{