diff --git a/Assets/Zion/Scripts/Adam/FormationManager.cs b/Assets/Zion/Scripts/Adam/FormationManager.cs index f46e9553..b9b15181 100644 --- a/Assets/Zion/Scripts/Adam/FormationManager.cs +++ b/Assets/Zion/Scripts/Adam/FormationManager.cs @@ -203,23 +203,28 @@ public class FormationManager : MonoSingleton } - formationInfo = new FormationInfo(); - for (int i = 0; i < allUavms.Count; i++) + foreach (var uam in allUavms) { - if (allUavms[i].groupId == wrjCount) + if (uam.groupId != -1) { - formationInfo.groupIndex = wrjCount; - formationInfo.uavms.Add(allUavms[i]); + FormationInfo existingCategory = formationInfos.Find(tt => tt.groupIndex == uam.groupId); + if (existingCategory != null) + { + if (!existingCategory.uavms.Contains(uam)) + existingCategory.uavms.Add(uam); + } + else + { + FormationInfo newCategory = new FormationInfo { groupIndex = uam.groupId }; + if (!newCategory.uavms.Contains(uam)) + newCategory.uavms.Add(uam); + if (!formationInfos.Contains(newCategory)) + formationInfos.Add(newCategory); + } } } - - //wrjCount = -1; - //formationInfo = null; - - //allUavms = .Where(x => x != null && x.gameObject.layer == 11 && x.GetComponent()).ToList(); - //List uavms = DeviceManager.Instance.devices; } - +