logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class CreateAchievementSettingsWindow

    Step-by-step window for authoring a project's achievements configuration: the UnityAchievementSettings asset, its structured backend, one definition per storefront, the optional on-screen listing, and the boot task that installs the module. The stepped-wizard scaffolding — the header and breadcrumb, the body scroll, the footer and its error gate, and the select-and-ping a finished run ends with — comes from Serenity.Global.Infrastructure.Editor.SerenityStepWizardWindow`1; this window declares only its own step table and what the primary action does. AchievementSettingsCreator owns every rule and every asset mutation.

    Inheritance
    object
    CreateAchievementSettingsWindow
    Namespace: Serenity.Achievements.Infrastructure.Editor.Builder
    Assembly: Serenity.UnityAchievements.Infrastructure.Editor.dll
    Syntax
    public sealed class CreateAchievementSettingsWindow : SerenityStepWizardWindow<CreateAchievementSettingsWindow.WizardStep>
    Remarks

    Two deliberate shape decisions a reader will otherwise re-litigate.

    No step ever sets Serenity.Global.Infrastructure.Editor.WizardStepDescriptor`1.IsSkipped. Serenity.Global.Infrastructure.Editor.SerenityWizardGui.DrawBreadcrumb(System.String[],System.Boolean[],System.String[],Serenity.Global.Infrastructure.Editor.SerenityWizardStepController) makes a skipped step unclickable, and the two steps that could plausibly be skipped — View and Storefronts — are exactly the ones a reader navigates back to in order to switch their toggle on. A greyed-out chip would put the toggle out of reach of the control meant to reach it, so every step stays live and collapses its own body instead.

    The boot task is wired by Serenity.Global.Infrastructure.Editor.InitializationPipeline.InstallTaskSectionGui, not by the creator. The section owns the per-profile checkboxes and insertion positions and exposes no way to read them back, so feeding TargetProfiles as well would either ignore those choices or apply them twice. WireInstallTask therefore stays off and Serenity.Global.Infrastructure.Editor.InitializationPipeline.InstallTaskSectionGui.TryEnsurePendingTask(System.Action{System.String},System.Boolean) runs right after a successful create — the same arrangement CreateScoreSettingsWindow and CreateLeaderboardWindow ship.

    Constructors

    CreateAchievementSettingsWindow()

    Declaration
    public CreateAchievementSettingsWindow()

    Properties

    PrimaryButtonLabel

    Swaps to "Create Another" once the run has succeeded — this wizard ends on Summary rather than on a Done panel, so the terminal state is the only thing that distinguishes "not written yet" from "written, review it again".

    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<CreateAchievementSettingsWindow.WizardStep>[] BuildSteps()
    Returns
    Type Description
    WizardStepDescriptor<WizardStep>[]

    OnPrimaryAction()

    Declaration
    protected override void OnPrimaryAction()

    Open()

    Opens the achievements wizard.

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