private AudioMixerGroupController DuplicateGroupRecurse(AudioMixerGroupController sourceGroup, bool recordUndo) { var targetGroup = new AudioMixerGroupController(this); // Copy effects var targetEffectsList = new List <AudioMixerEffectController>(); foreach (var sourceEffect in sourceGroup.effects) { targetEffectsList.Add(CopyEffect(sourceEffect)); } // Copy child groups var targetChildren = new List <AudioMixerGroupController>(); foreach (var childGroup in sourceGroup.children) { targetChildren.Add(DuplicateGroupRecurse(childGroup, recordUndo)); } targetGroup.name = sourceGroup.name + " - Copy"; targetGroup.PreallocateGUIDs(); targetGroup.effects = targetEffectsList.ToArray(); targetGroup.children = targetChildren.ToArray(); targetGroup.solo = sourceGroup.solo; targetGroup.mute = sourceGroup.mute; targetGroup.bypassEffects = sourceGroup.bypassEffects; float value; foreach (var s in snapshots) { if (s.GetValue(sourceGroup.GetGUIDForVolume(), out value)) { s.SetValue(targetGroup.GetGUIDForVolume(), value); } if (s.GetValue(sourceGroup.GetGUIDForPitch(), out value)) { s.SetValue(targetGroup.GetGUIDForPitch(), value); } if (s.GetValue(sourceGroup.GetGUIDForSend(), out value)) { s.SetValue(targetGroup.GetGUIDForSend(), value); } } AssetDatabase.AddObjectToAsset(targetGroup, this); if (recordUndo) { Undo.RegisterCreatedObjectUndo(targetGroup, targetGroup.name); } // Add to view if source is shown (so it's visible in the channelstrip) if (CurrentViewContainsGroup(sourceGroup.groupID)) { targetGroup.controller.AddGroupToCurrentView(targetGroup); } return(targetGroup); }
void RemoveExposedParametersContainedInGroup(AudioMixerGroupController group) { // Clean up the exposed parameters that were in the group. var exposedParams = exposedParameters; if (exposedParams.Length == 0) { return; } var undoString = "Remove Exposed Group Parameter"; if (exposedParams.Length > 1) { undoString = $"{undoString}s"; } Undo.RecordObject(this, undoString); foreach (var param in exposedParams) { if (group.GetGUIDForVolume() == param.guid || group.GetGUIDForPitch() == param.guid) { RemoveExposedParameter(param.guid); } } }
private void DestroyExposedParametersContainedInGroup(AudioMixerGroupController group) { Undo.RecordObject(this, "Remove Exposed Parameter"); //Clean up the exposed parameters that were in the group. var exposedParams = exposedParameters; foreach (var param in exposedParams) { if (group.GetGUIDForVolume() == param.guid || group.GetGUIDForPitch() == param.guid) { RemoveExposedParameter(param.guid); } } }
public override string ResolveStringPath(bool getOnlyBasePath) { if (getOnlyBasePath) { return(GetBasePath(group.GetDisplayString(), null)); } if (group.GetGUIDForVolume() == parameter) { return("Volume" + GetBasePath(group.GetDisplayString(), null)); } if (group.GetGUIDForPitch() == parameter) { return("Pitch" + GetBasePath(group.GetDisplayString(), null)); } return("Error finding Parameter path."); }
public static float DoInitialModule(AudioMixerGroupController group, AudioMixerController controller, List<AudioMixerGroupController> allGroups) { Rect rect = EditorGUILayout.BeginVertical(EditorStyles.inspectorDefaultMargins, new GUILayoutOption[0]); float valueForPitch = group.GetValueForPitch(controller, controller.TargetSnapshot); if (AudioMixerEffectGUI.Slider(AudioMixerEffectView.Texts.pitch, ref valueForPitch, 100f, 1f, AudioMixerEffectView.Texts.percentage, 0.01f, 10f, controller, (AudioParameterPath) new AudioGroupParameterPath(group, group.GetGUIDForPitch()))) { Undo.RecordObject((UnityEngine.Object) controller.TargetSnapshot, "Change Pitch"); group.SetValueForPitch(controller, controller.TargetSnapshot, valueForPitch); } GUILayout.Space(5f); EditorGUILayout.EndVertical(); AudioMixerDrawUtils.DrawSplitter(); return rect.height; }
private AudioMixerGroupController DuplicateGroupRecurse(AudioMixerGroupController sourceGroup) { AudioMixerGroupController group = new AudioMixerGroupController((AudioMixer) this); List<AudioMixerEffectController> effectControllerList = new List<AudioMixerEffectController>(); foreach (AudioMixerEffectController effect in sourceGroup.effects) effectControllerList.Add(this.CopyEffect(effect)); List<AudioMixerGroupController> mixerGroupControllerList = new List<AudioMixerGroupController>(); foreach (AudioMixerGroupController child in sourceGroup.children) mixerGroupControllerList.Add(this.DuplicateGroupRecurse(child)); group.name = sourceGroup.name + " - Copy"; group.PreallocateGUIDs(); group.effects = effectControllerList.ToArray(); group.children = mixerGroupControllerList.ToArray(); group.solo = sourceGroup.solo; group.mute = sourceGroup.mute; group.bypassEffects = sourceGroup.bypassEffects; foreach (AudioMixerSnapshotController snapshot in this.snapshots) { float num; if (snapshot.GetValue(sourceGroup.GetGUIDForVolume(), out num)) snapshot.SetValue(group.GetGUIDForVolume(), num); if (snapshot.GetValue(sourceGroup.GetGUIDForPitch(), out num)) snapshot.SetValue(group.GetGUIDForPitch(), num); } AssetDatabase.AddObjectToAsset((UnityEngine.Object) group, (UnityEngine.Object) this); if (this.CurrentViewContainsGroup(sourceGroup.groupID)) group.controller.AddGroupToCurrentView(group); return group; }
private void DestroyExposedParametersContainedInGroup(AudioMixerGroupController group) { Undo.RecordObject((UnityEngine.Object) this, "Remove Exposed Parameter"); foreach (ExposedAudioParameter exposedParameter in this.exposedParameters) { if (group.GetGUIDForVolume() == exposedParameter.guid || group.GetGUIDForPitch() == exposedParameter.guid) this.RemoveExposedParameter(exposedParameter.guid); } }
private AudioMixerGroupController DuplicateGroupRecurse(AudioMixerGroupController sourceGroup) { AudioMixerGroupController audioMixerGroupController = new AudioMixerGroupController(this); List<AudioMixerEffectController> list = new List<AudioMixerEffectController>(); AudioMixerEffectController[] effects = sourceGroup.effects; for (int i = 0; i < effects.Length; i++) { AudioMixerEffectController sourceEffect = effects[i]; list.Add(this.CopyEffect(sourceEffect)); } List<AudioMixerGroupController> list2 = new List<AudioMixerGroupController>(); AudioMixerGroupController[] children = sourceGroup.children; for (int j = 0; j < children.Length; j++) { AudioMixerGroupController sourceGroup2 = children[j]; list2.Add(this.DuplicateGroupRecurse(sourceGroup2)); } audioMixerGroupController.name = sourceGroup.name + " - Copy"; audioMixerGroupController.PreallocateGUIDs(); audioMixerGroupController.effects = list.ToArray(); audioMixerGroupController.children = list2.ToArray(); audioMixerGroupController.solo = sourceGroup.solo; audioMixerGroupController.mute = sourceGroup.mute; audioMixerGroupController.bypassEffects = sourceGroup.bypassEffects; AudioMixerSnapshotController[] snapshots = this.snapshots; for (int k = 0; k < snapshots.Length; k++) { AudioMixerSnapshotController audioMixerSnapshotController = snapshots[k]; float value; if (audioMixerSnapshotController.GetValue(sourceGroup.GetGUIDForVolume(), out value)) { audioMixerSnapshotController.SetValue(audioMixerGroupController.GetGUIDForVolume(), value); } if (audioMixerSnapshotController.GetValue(sourceGroup.GetGUIDForPitch(), out value)) { audioMixerSnapshotController.SetValue(audioMixerGroupController.GetGUIDForPitch(), value); } } AssetDatabase.AddObjectToAsset(audioMixerGroupController, this); if (this.CurrentViewContainsGroup(sourceGroup.groupID)) { audioMixerGroupController.controller.AddGroupToCurrentView(audioMixerGroupController); } return audioMixerGroupController; }
private void DestroyExposedParametersContainedInGroup(AudioMixerGroupController group) { Undo.RecordObject(this, "Remove Exposed Parameter"); ExposedAudioParameter[] exposedParameters = this.exposedParameters; ExposedAudioParameter[] array = exposedParameters; for (int i = 0; i < array.Length; i++) { ExposedAudioParameter exposedAudioParameter = array[i]; if (group.GetGUIDForVolume() == exposedAudioParameter.guid || group.GetGUIDForPitch() == exposedAudioParameter.guid) { this.RemoveExposedParameter(exposedAudioParameter.guid); } } }