Class CreateAudioMixerEffectLoopWindow
Editor tool (Tools ▸ Serenity ▸ Create ▸ Audio ▸ Create Audio Mixer Effect Loop) for building an
AudioMixer "effect loop" group: a child group whose chain is
Receive -> user effects (in order) -> Attenuation, ready to be used as a Send/Receive
routing destination.
Separation of concerns. This window only collects input and renders results, across a stepped wizard whose scaffolding — the header and breadcrumb, the body scroll, the footer and its error gate — comes from Serenity.Global.Infrastructure.Editor.SerenityStepWizardWindow`1; this window declares only its own step table and what the primary action does. All AudioMixer modification lives in AudioMixerEffectLoopCreator, and every internal Unity API call is isolated in Serenity.SoundMixer.Infrastructure.AudioMixerEffectLoop.Editor.AudioMixerEffectLoopReflectionAdapter. The effect-chain list editor and the source-group picker are extracted collaborators — Serenity.SoundMixer.Infrastructure.AudioMixerEffectLoop.Editor.AudioMixerEffectLoopWizardEffectChainGui and Serenity.SoundMixer.Infrastructure.AudioMixerEffectLoop.Editor.AudioMixerEffectLoopWizardSourceGroupsStepGui — under the file-size ratchet.
How to use the generated loop (manual Send wiring). This tool creates only the RECEIVE side. After creating, e.g., "EchoLoop":
- Open the Audio Mixer window and select a source group (e.g. SFX or Voice).
- Add a Send effect to that source group.
- Set the Send's target to this loop group's Receive effect.
- Use the source Send's wet level to control how much is routed in, and this loop's trailing Attenuation to control the overall returned wet output.
The tool intentionally does NOT add or configure Sends on other groups, so it never mutates any group besides the new loop group and its parent relationship.
Namespace: Serenity.SoundMixer.Infrastructure.AudioMixerEffectLoop.Editor
Assembly: Serenity.UnitySoundMixer.Infrastructure.Editor.dll
Syntax
public class CreateAudioMixerEffectLoopWindow : SerenityStepWizardWindow<CreateAudioMixerEffectLoopWindow.WizardStep>
Constructors
CreateAudioMixerEffectLoopWindow()
Declaration
public CreateAudioMixerEffectLoopWindow()
Properties
PrimaryButtonLabel
Re-read every repaint, so a finished run's Summary offers the restart instead of a re-entrant Create. This wizard has no Done step to swap on, so it branches on the controller's own terminal state — the same decision the controller's terminal-footer overload used to make for it.
Declaration
protected override string PrimaryButtonLabel { get; }
Property Value
| Type | Description |
|---|---|
| string |
WindowTitle
Declaration
protected override string WindowTitle { get; }
Property Value
| Type | Description |
|---|---|
| string |
Methods
BuildSteps()
Declaration
protected override WizardStepDescriptor<CreateAudioMixerEffectLoopWindow.WizardStep>[] BuildSteps()
Returns
| Type | Description |
|---|---|
| WizardStepDescriptor<WizardStep>[] |
OnBeforeDrawStep()
Rebuilds the two one-shot step collaborators before anything draws — they hold no serialized state, so a domain reload drops them while the lists they wrap survive.
Declaration
protected override void OnBeforeDrawStep()
OnPrimaryAction()
Runs the Create while the run is still open, and the "Create Another" restart once it has finished — the branch the controller's terminal-footer overload used to make from the outside, now stated here beside the label PrimaryButtonLabel swaps for the same reason.
Declaration
protected override void OnPrimaryAction()
ShowWindow()
Declaration
public static void ShowWindow()