添加编组功能

This commit is contained in:
YangHua 2024-02-22 23:46:04 +08:00
parent 962bcc3205
commit 20b0b3e0db
5 changed files with 67 additions and 36 deletions

View File

@ -32,8 +32,8 @@ Material:
- _dispStrength: 1
- _overBright: 1
m_Colors:
- _AmbientTint: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 0.5, g: 0.49803922, b: 0.49215686, a: 0.2}
- _AmbientTint: {r: 0, g: 0, b: 0, a: 1}
- _Color: {r: 0.25, g: 0.25, b: 0.25, a: 0.040000003}
- _GlowColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- _PrimaryTint: {r: 1, g: 1, b: 1, a: 1}
- _TintColor: {r: 1, g: 1, b: 1, a: 1}

View File

@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 1113159741}
m_IndirectSpecularColor: {r: 0.12549877, g: 0.1459642, b: 0.15314084, a: 1}
m_IndirectSpecularColor: {r: 0.06491052, g: 0.12166043, b: 0.26573104, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
@ -54458,10 +54458,11 @@ MonoBehaviour:
m_EditorClassIdentifier:
startFormationBtn: {fileID: 535597723}
submitFormationBtn: {fileID: 1724214693}
cancelFormationBtn: {fileID: 1912788541}
isStartFormation: 0
formationInfos: []
formationInfo:
groupName:
groupName: 0
uavms: []
--- !u!1 &1444599844
GameObject:
@ -65870,7 +65871,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 363.8, y: -90.7}
m_AnchoredPosition: {x: 363.7998, y: -90.700195}
m_SizeDelta: {x: 0, y: 45.75061}
m_Pivot: {x: 0, y: 1}
--- !u!114 &1585142380
@ -70080,10 +70081,10 @@ MonoBehaviour:
colorSkyBase: {r: 0.6054902, g: 0.7090196, b: 0.7968628, a: 0.8}
colorSkyBaseLow: {r: 0.75686276, g: 0.88627446, b: 0.9960785, a: 1}
colorHorizon: {r: 0.9082354, g: 1.0682354, b: 1.1952941, a: 1.2}
colorHorizonLow: {r: 0.9082354, g: 1.0682354, b: 1.1952941, a: 1.2}
colorHorizonLow: {r: 0.12235295, g: 0.2964706, b: 0.36705884, a: 1.2}
colorSkyAmbient: {r: 1, g: 1, b: 1, a: 1}
colorClouds: {r: 1, g: 1, b: 1, a: 1}
colorHighlightClouds: {r: 1, g: 1, b: 1, a: 1}
colorHighlightClouds: {r: 0, g: 0, b: 0, a: 1}
colorSkyboxGround: {r: 0.1102941, g: 0.08836951, b: 0.06487888, a: 1}
colorSkyboxMie: {r: 1, g: 1, b: 1, a: 1}
displayTime: '[ 10:30:00 AM] [ 3/6/1027 ad]'
@ -70421,7 +70422,7 @@ MonoBehaviour:
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
randSeed: 335766515
randSeed: 430582031
isDoingTransition: 0
minimumHeight: 0
--- !u!114 &1820978574

View File

@ -19,6 +19,7 @@ public class FormationManager : MonoSingleton<FormationManager>
{
public Button startFormationBtn;
public Button submitFormationBtn;
public Button cancelFormationBtn;
public bool isStartFormation;
public List<FormationInfo> formationInfos = new List<FormationInfo>();
public FormationInfo formationInfo;
@ -27,6 +28,15 @@ public class FormationManager : MonoSingleton<FormationManager>
{
startFormationBtn.onClick.AddListener(OnStartFormation);
submitFormationBtn.onClick.AddListener(OnSubmit);
cancelFormationBtn.onClick.AddListener(OnCancel);
CheckBtns(0);
}
private void CheckBtns(int index)
{
startFormationBtn.gameObject.SetActive(index == 0);
submitFormationBtn.gameObject.SetActive(index == 1);
cancelFormationBtn.gameObject.SetActive(index == 1);
}
// Update is called once per frame
@ -63,7 +73,7 @@ public class FormationManager : MonoSingleton<FormationManager>
/// <summary>
/// 设置组中得无人机所有航线
/// </summary>
public void SetUAVMGroupAirRoute(int uavmGroupID, Vector3 pos)
public void SetUAVMGroupAirRoute(int uavmGroupID, Vector3 pos, DistanceMeasurement _airRoute)
{
List<UnmannedAerialVehicleManage> uavms = new List<UnmannedAerialVehicleManage>();
for (int i = 0; i < formationInfos.Count; i++)
@ -76,6 +86,11 @@ public class FormationManager : MonoSingleton<FormationManager>
}
for (int j = 0; j < uavms.Count; j++)
{
if (!uavms[j].airRoute)
{
uavms[j].airRoute = _airRoute.gameObject;
uavms[j].SetStartPos(_airRoute.PosPrefab);
}
uavms[j].positions.Enqueue(pos);
}
}
@ -100,37 +115,48 @@ public class FormationManager : MonoSingleton<FormationManager>
}
}
public void SetAirRouteObj(int uavmGroupID, GameObject _airRoute)
{
List<UnmannedAerialVehicleManage> uavms = new List<UnmannedAerialVehicleManage>();
for (int i = 0; i < formationInfos.Count; i++)
{
int indexI = i;
if (formationInfos[indexI].groupName == uavmGroupID)
{
uavms = formationInfos[indexI].uavms;
}
}
for (int j = 0; j < uavms.Count; j++)
{
if (!uavms[j].airRoute)
{
uavms[j].airRoute = _airRoute;
}
}
}
//public void SetAirRouteObj(int uavmGroupID, GameObject _airRoute)
//{
// List<UnmannedAerialVehicleManage> uavms = new List<UnmannedAerialVehicleManage>();
// for (int i = 0; i < formationInfos.Count; i++)
// {
// int indexI = i;
// if (formationInfos[indexI].groupName == uavmGroupID)
// {
// uavms = formationInfos[indexI].uavms;
// }
// }
// for (int j = 0; j < uavms.Count; j++)
// {
// if (!uavms[j].airRoute)
// {
// uavms[j].airRoute = _airRoute;
// }
// }
//}
public void OnStartFormation()
{
isStartFormation = true;
formationInfo = new FormationInfo();
formationInfo.groupName = formationInfos.Count;
CheckBtns(1);
}
public void OnSubmit()
{
isStartFormation = false;
if (formationInfo.uavms.Count > 0)
{
if (!formationInfos.Contains(formationInfo))
formationInfos.Add(formationInfo);
}
CheckBtns(0);
}
public void OnCancel()
{
formationInfo = null;
CheckBtns(0);
}
}

View File

@ -62,7 +62,8 @@ public class DistanceMeasurement : MonoBehaviour
unmannedAerialVehicleManage.positions.Enqueue(go.transform.position);
else
{
FormationManager.Instance.SetUAVMGroupAirRoute(unmannedAerialVehicleManage.groupId, go.transform.position);
FormationManager.Instance.SetUAVMGroupAirRoute(unmannedAerialVehicleManage.groupId, go.transform.position,this);
}
go.transform.SetParent(transform);
}

View File

@ -988,7 +988,6 @@ public class UnmannedAerialVehicleManage : MonoBehaviour
positions.Enqueue(startPos.transform.position);
}
FormationManager.Instance.SetAirRouteObj(groupId, airRoute);
}
else
{
@ -1008,9 +1007,7 @@ public class UnmannedAerialVehicleManage : MonoBehaviour
}
else
{
startPos = Instantiate(distanceMeasurement.PosPrefab, transform);
startPos.transform.localScale = Vector3.zero;
startPos.transform.position = new Vector3(transform.position.x, hight, transform.position.z);
SetStartPos(distanceMeasurement.PosPrefab);
distanceMeasurement.isPathCanBePlanned = true;
distanceMeasurement.markers[0] = startPos.transform;
positions.Enqueue(startPos.transform.position);
@ -1018,10 +1015,16 @@ public class UnmannedAerialVehicleManage : MonoBehaviour
}
}
FormationManager.Instance.SetAirRouteObj(groupId, airRoute);
}
}
public void SetStartPos(GameObject _distanceMeasurement)
{
startPos = Instantiate(_distanceMeasurement, transform);
startPos.transform.localScale = Vector3.zero;
startPos.transform.position = new Vector3(transform.position.x, hight, transform.position.z);
}
private bool isMove = true;
/// <summary>
/// 按规划路径开始移动