Class UiSettingsCreator
Generates (or updates) the project-wide UnityUiSettings asset from a single description.
Runs on SingletonSettingsCreationEngine<TSettings, TInput, TResult>: this class stays the
caller-facing static surface — Input/Result DTOs, ValidateIdentity/Validate/Create,
ResolveSettingsContext<TSettings>(string, string) for "edit existing" detection, the
EnsureSettings(string, bool, string) headless get-or-create seam — and forwards every member to one
UiSettingsCreator.Engine instance that supplies the module's own fields. Lives beside
CompositeViewGenerator — rather than beside CreateUiSettingsWindow in Ui
Installation's editor assembly — because Serenity.Ui.Infrastructure.Editor.Builder.CompositeViewGenerator.TrySetInitialView(System.String,Serenity.Ui.Infrastructure.Editor.Builder.CompositeViewGenerator.Result,System.String) needs it
too, and Ui Installation's editor assembly already depends on Ui Infrastructure's, so the reverse
direction would cycle; the window reaches this engine through that same existing dependency. Every asset
mutation lives in the engine; the window and the generator both only collect input/react to results.
UnityUiSettings's font size presets seed through the SO's own field initializer
(small/medium/big), and its Prewarm labels/addresses are inspector-only fields with no meaningful value
at creation time — neither UiSettingsCreator.Input nor Serenity.Ui.Infrastructure.Editor.Builder.UiSettingsCreator.Engine.ApplyFields(Serenity.Ui.Infrastructure.Editor.Builder.UiSettingsCreator.Input,Serenity.Ui.Installation.Settings.UnityUiSettings) touches either, so a
freshly created asset keeps its three presets and an update never disturbs prewarm lists authored
outside this wizard.
Inheritance
UiSettingsCreator
Assembly: Serenity.UnityUi.Infrastructure.Editor.dll
Syntax
public static class UiSettingsCreator
Fields
DefaultAssetName
Default asset file name for a brand-new settings asset.
Declaration
public const string DefaultAssetName = "UiSettings"
Field Value
DefaultFloatIncrement
These three defaults mirror the exact values on the package's own shipped reference asset,
Assets/Serenity/Media/Ui/UiSettings.asset. UiSettingsCreator.Input's field initializers and the
wizard window's serialized field initializers both reference these constants instead of repeating
the values, so a retune of the shipped asset only ever needs to change one place.
Declaration
public const float DefaultFloatIncrement = 0.01
Field Value
DefaultFontSizeKey
These three defaults mirror the exact values on the package's own shipped reference asset,
Assets/Serenity/Media/Ui/UiSettings.asset. UiSettingsCreator.Input's field initializers and the
wizard window's serialized field initializers both reference these constants instead of repeating
the values, so a retune of the shipped asset only ever needs to change one place.
Declaration
public const string DefaultFontSizeKey = "UI_HudFontSize"
Field Value
DefaultId
Default identifier written onto a brand-new settings asset when the caller names none.
Declaration
public const string DefaultId = "UiSettings"
Field Value
DefaultOutputFolder
Default output folder for a brand-new settings asset — under the game's content root,
matching every other singleton settings creator (SoundMixerSettingsCreator, GameSaveCreator).
Declaration
public const string DefaultOutputFolder = "Assets/Game/Media/Ui"
Field Value
DefaultScaleKey
These three defaults mirror the exact values on the package's own shipped reference asset,
Assets/Serenity/Media/Ui/UiSettings.asset. UiSettingsCreator.Input's field initializers and the
wizard window's serialized field initializers both reference these constants instead of repeating
the values, so a retune of the shipped asset only ever needs to change one place.
Declaration
public const string DefaultScaleKey = "UI_HudScale"
Field Value
Methods
Validates the request, then either updates the existing asset named by
Input.ExistingSettingsAssetPath or creates a brand-new one. On any failure during
creation every mutation is rolled back so the project is left untouched; an update failure cannot
occur past validation, since it only ever writes already-validated fields onto an asset already
confirmed to exist.
Declaration
public static UiSettingsCreator.Result Create(UiSettingsCreator.Input input)
Parameters
Returns
CreateFromDraft(UnityUiSettings, string, string, bool)
Declaration
public static UiSettingsCreator.Result CreateFromDraft(UnityUiSettings draft, string explicitSettingsAssetPath, string newSettingsFolderPath, bool registerAsAddressables)
Parameters
Returns
EnsureSettings(string, bool, string)
Headless get-or-create seam: resolves the project singleton, returning it untouched
(WasFoundExisting true) when found, creating one at folderPath
with UiSettingsCreator.Input's own defaults when none exists, or erroring with every path found when more
than one exists.
Declaration
public static UiSettingsCreator.Result EnsureSettings(string folderPath, bool registerAsAddressables, string searchRootFolder = null)
Parameters
| Type |
Name |
Description |
| string |
folderPath |
Folder a brand-new settings asset is created under, when none exists yet.
|
| bool |
registerAsAddressables |
Whether a newly created asset is registered in the Addressables group.
|
| string |
searchRootFolder |
Test seam: narrows the singleton scan to this folder instead of the
whole project, so a test creating its own UnityUiSettings fixtures under a temp
folder does not collide with the package's shipped singleton at
Assets/Serenity/Media/Ui/UiSettings.asset. Production callers leave this null (project-wide scan).
|
Returns
ResolveSettingsContext(string, string)
Declaration
public static SettingsAssetAuthoring.SettingsResolution<UnityUiSettings> ResolveSettingsContext(string explicitSettingsAssetPath = "", string searchRootFolder = null)
Parameters
| Type |
Name |
Description |
| string |
explicitSettingsAssetPath |
|
| string |
searchRootFolder |
|
Returns
Full validation, re-checked at creation time so Create(Input) is safe to call
independently of the window's live validation.
Declaration
public static SerenityCreationValidationResult Validate(UiSettingsCreator.Input input)
Parameters
Returns
| Type |
Description |
| SerenityCreationValidationResult |
|
Id-only validation, usable before a folder choice has been made.
Declaration
public static SerenityCreationValidationResult ValidateIdentity(UiSettingsCreator.Input input)
Parameters
Returns
| Type |
Description |
| SerenityCreationValidationResult |
|