Namespace Serenity.GameCamera.Infrastructure.Editor.Builder
Classes
CreateGameCameraSettingsWindow
Step-by-step window for creating a UnityGameCameraSettings 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. The window only collects input and renders results, GameCameraSettingsCreator does the actual validation and generation work.
Every field is edited through a Serenity.Global.Infrastructure.Editor.SerenityWizardDraftLifecycle`1 scratch draft rather
than a mirrored set of local fields, so an update-in-place run can never silently revert a field the
wizard forgot to seed back to its static template default — an update-in-place
tool must surface and let the author edit everything its target already owns, mirroring
CreateSystemConfigurationSettingsWindow.
GameCameraSettingsCreator
Generates (or updates) the project-wide UnityGameCameraSettings asset from a single
description. Mirrors Serenity.GameProgress.Infrastructure.Editor.Builder.GameProgressCreator and
Serenity.GameSave.Infrastructure.Editor.Builder.GameSaveCreator: static class, Input/Result DTOs,
Validate, Create with created-paths rollback on failure — resolved and folder-provisioned through the
shared SettingsAssetAuthoring engine rather than a private copy of its logic.
Unlike GameProgress/GameSave — which treat more than one project-wide settings asset as a hard error
because they enforce a true single-instance identity — a second UnityGameCameraSettings
asset does not break the GameCamera installer (it loads every asset tagged module:game-camera
and uses the first one found); ambiguity here is surfaced as a warning instead of blocking the run.
GameCameraSettingsCreator.Input
Everything needed to create or update the settings asset.
GameCameraSettingsCreator.Result
Outcome of a Create(Input) call.
Enums
CreateGameCameraSettingsWindow.WizardStep
Public rather than private because C# requires a class's base type to be at least as accessible as the class itself, and this enum is that base type's argument.