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.
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()