logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class CreateGameModeSettingsWindow

    Step-by-step window for creating or updating a UnityGameModeSettingsDefinition 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. The window only collects input and renders results, GameModeSettingsCreator does the actual validation and generation work.

    Inheritance
    object
    CreateGameModeSettingsWindow
    Namespace: Serenity.GameMode.Installation.Editor.Builder
    Assembly: Serenity.UnityGameMode.Installation.Editor.dll
    Syntax
    public sealed class CreateGameModeSettingsWindow : SerenityStepWizardWindow<CreateGameModeSettingsWindow.WizardStep>

    Constructors

    CreateGameModeSettingsWindow()

    Declaration
    public CreateGameModeSettingsWindow()

    Properties

    OwnedTargets

    Declaration
    protected override IEnumerable<SerenityWizardTargetAsset> OwnedTargets { get; }
    Property Value
    Type Description
    IEnumerable<SerenityWizardTargetAsset>

    PrimaryButtonLabel

    Re-read every repaint off Serenity.Global.Infrastructure.Editor.SerenityWizardByIdAssetField`1.AlreadyExists, so the button says "Update" the moment the typed Id resolves to an asset 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<CreateGameModeSettingsWindow.WizardStep>[] BuildSteps()
    Returns
    Type Description
    WizardStepDescriptor<WizardStep>[]

    OnBeforeDrawStep()

    Adopts a target the Id/Output Folder fields just resolved, before any step draws — a reseed happens too late for the step that triggered it to react within the same frame. Mirrors CreateSequencePlayerWindow.OnBeforeDrawStep: Serenity.Global.Infrastructure.Editor.SerenityWizardByIdAssetField`1.ConsumeSeed(System.Action{`0}) reseeds the draft (and, here, Serenity.GameMode.Installation.Editor.Builder.CreateGameModeSettingsWindow._transitionRows) only from a newly resolved DIFFERENT existing asset. A free Id, or a return to the asset already seeded, leaves the draft and Serenity.GameMode.Installation.Editor.Builder.CreateGameModeSettingsWindow._transitionRows exactly as the author left them — see Serenity.Global.Infrastructure.Editor.SerenityWizardByIdAssetField`1.ConsumeSeed(System.Action{`0})'s own remarks for why a free Id must never wipe an in-progress edit back to template defaults.

    Declaration
    protected override void OnBeforeDrawStep()

    OnPrimaryAction()

    Lands on Done through the ungated Serenity.Global.Infrastructure.Editor.SerenityStepWizardWindow`1.PingAndGoTo(System.String,`0,System.Boolean) rather than Serenity.Global.Infrastructure.Editor.SerenityStepWizardWindow`1.FinishWithAsset(System.String,`0): this window never installed a step-error gate, so its old jump to Done was ungated in practice, and it never latched a terminal run — its Done panel offers no "Create Another" to clear one again. Re-running against the Id just written is an update-in-place, not a collision, so the content steps' gate can stay live.

    Declaration
    protected override void OnPrimaryAction()

    Open()

    Declaration
    public static void Open()
    In this article
    © 2026 Serenity. All Rights Reserved