public void RemoveGroupsFromParent(AudioMixerGroupController[] groups, bool storeUndoState) { List<AudioMixerGroupController> list = groups.ToList<AudioMixerGroupController>(); this.RemoveAncestorGroups(list); if (storeUndoState) { Undo.RecordObject(this, "Remove group"); } foreach (AudioMixerGroupController current in list) { List<AudioMixerGroupController> allAudioGroupsSlow = this.GetAllAudioGroupsSlow(); foreach (AudioMixerGroupController current2 in allAudioGroupsSlow) { List<AudioMixerGroupController> list2 = new List<AudioMixerGroupController>(current2.children); if (list2.Contains(current)) { list2.Remove(current); } if (current2.children.Length != list2.Count) { current2.children = list2.ToArray(); } } } }
public List<AudioMixerGroupController> DuplicateGroups(AudioMixerGroupController[] sourceGroups) { List<AudioMixerGroupController> list = sourceGroups.ToList<AudioMixerGroupController>(); this.RemoveAncestorGroups(list); List<AudioMixerGroupController> list2 = new List<AudioMixerGroupController>(); foreach (AudioMixerGroupController current in list) { AudioMixerGroupController audioMixerGroupController = this.FindParentGroup(this.masterGroup, current); if (audioMixerGroupController != null && current != null) { AudioMixerGroupController item = this.DuplicateGroupRecurse(current); audioMixerGroupController.children = new List<AudioMixerGroupController>(audioMixerGroupController.children) { item }.ToArray(); list2.Add(item); } } return list2; }
public void DeleteGroups(AudioMixerGroupController[] groups) { List<AudioMixerGroupController> list = groups.ToList<AudioMixerGroupController>(); this.RemoveAncestorGroups(list); this.DeleteGroupsInternal(list, this.GetAllAudioGroupsSlow()); this.OnUnitySelectionChanged(); }