Class CreateWaveWindow
Step-by-step window for creating or updating one stage's Wave asset chain (an ordered list of UnityWaveConfigSO plus the referencing UnityWaveSetSO) in one run. The stepped-wizard 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. It never mutates an asset directly: WaveCreator does the actual validation and generation work.
Every dropdown option list (spawn point ids, known archetype prefabs) and both Validate(Input) / Preview(Input) results are cached off the repaint path — recomputed only on step entry and inside a field's UnityEditor.EditorGUI.BeginChangeCheck gate, mirroring StageSpawnPointProvider's own UnityEditor.EditorApplication.projectChanged invalidation for the spawn point / archetype caches this window keeps on top of it.
Namespace: Serenity.Wave.Editor.Builder
Assembly: Serenity.UnityWave.Editor.dll
Syntax
public sealed class CreateWaveWindow : SerenityStepWizardWindow<CreateWaveWindow.WizardStep>
Constructors
CreateWaveWindow()
Declaration
public CreateWaveWindow()
Properties
PrimaryButtonLabel
Re-read every repaint off Serenity.Wave.Editor.Builder.CreateWaveWindow._cachedPreview, so the button says "Update" the moment the typed Wave Set Id resolves to a set that already exists.
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<CreateWaveWindow.WizardStep>[] BuildSteps()
Returns
| Type | Description |
|---|---|
| WizardStepDescriptor<WizardStep>[] |
OnPrimaryAction()
Lands on Done through the base's gated Serenity.Global.Infrastructure.Editor.SerenityStepWizardWindow`1.GoTo(`0) and pings separately, rather than through Serenity.Global.Infrastructure.Editor.SerenityStepWizardWindow`1.FinishWithAsset(System.String,`0) or Serenity.Global.Infrastructure.Editor.SerenityStepWizardWindow`1.PingAndGoTo(System.String,`0,System.Boolean): this wizard never latches a terminal run (it has no "Create Another"), and its jump has always been the gated one — Summary re-validates clean after a successful write here, because a Wave Set Id that now resolves to the chain just written is an update-in-place, not a collision.
Declaration
protected override void OnPrimaryAction()
Open()
Declaration
public static void Open()