Class CreateCharacterWindow
Step-by-step window for creating (or editing) one CharacterConfigSO archetype asset. 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 itself: CharacterConfigCreator does the actual validation and generation work.
Namespace: Serenity.Character.Infrastructure.Editor.Builder
Assembly: Serenity.UnityCharacter.Infrastructure.Editor.dll
Syntax
public sealed class CreateCharacterWindow : SerenityStepWizardWindow<CreateCharacterWindow.WizardStep>
Constructors
CreateCharacterWindow()
Declaration
public CreateCharacterWindow()
Properties
PrimaryButtonLabel
Re-read every repaint off Serenity.Character.Infrastructure.Editor.Builder.CreateCharacterWindow._cachedPreview, so the button says "Update" the moment the typed Id resolves to an archetype 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<CreateCharacterWindow.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 an Id that now resolves to the asset just written is an update-in-place, not a collision.
Declaration
protected override void OnPrimaryAction()
Open()
Declaration
public static void Open()