logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    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.

    Inheritance
    object
    CreateWaveWindow
    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()
    In this article
    © 2026 Serenity. All Rights Reserved