logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Namespace Serenity.ProjectRecipe.Infrastructure.Editor.Importers

    Classes

    AudioClipRecipeImporter

    Generates UnityAudioPlayerClipDefinition assets from the audioClips section. Fully supported: every field maps directly to a public field on the definition.

    CutsceneRecipeImporter

    Generates UnityCutsceneDefinition assets from the cutscenes section. Each stage's type, duration, fade colour, and Timeline reference are written through a UnityEditor.SerializedObject (the UnityCutsceneStep fields are private), and the optional rig prefab is resolved by path. Runs between menus (30) and modals (40) so a cutscene exists before anything references it.

    DeferredSectionImporter

    Reports populated sections that are recognised by the schema but not yet generated (GameMode signals, EventDispatcher signals, localization, player input, game settings). It writes nothing; its job is to make sure unsupported-but-present content is surfaced clearly instead of being silently dropped.

    FeedbackRecipeImporter

    Creates or updates FeedbackDefinition assets from the feedbacks section. The polymorphic [SerializeReference] Effects list round-trips via RecipeSerializedPropertyCodec — no bespoke per-effect DTO is needed. When generateTrigger is true, a companion UnityEventDispatcherSignalDefinition pre-wired to dispatch PlayFeedbackSignal for this feedback id is also created (idempotently) at the same path with a Trigger suffix.

    GenericAssetRecipeImporter

    Creates or updates arbitrary Serenity ScriptableObjects from the generic assets section, applying their captured field tree via RecipeSerializedPropertyCodec. Covers composite views, UI themes, action definitions, and every settings/config asset — including their [SerializeReference] signal graphs. Runs after the typed sections so references to generated menus/modals resolve by path.

    MenuRecipeImporter

    Generates UnityMenuSettingsDefinition assets from the menus section. Layout, title, alignment, direction, scrolling, options, and signal wiring (menu-level onShow/onHide/ onCancel/onSubmit and per-option submit signals) are supported. Signals are applied through RecipeSignalCodec; an unresolvable signal type is reported and left unset.

    ModalRecipeImporter

    Generates UnityModalSettings assets from the modals section. Content (title/text), alignment, direction, scrolling, and options are supported and written through the modal's public parameter properties; each option's submit signals are wired via RecipeSignalCodec. The optional signalTypeName (the signal the modal listens for) is passed through verbatim; a non-empty value that cannot be resolved is reported as a warning (the modal is still created).

    MusicTrackRecipeImporter

    Generates UnityMusicTrackDefinition assets from the musicTracks section. Fully supported: time/bar loop fields map directly. A Custom fade curve falls back to the asset default, since custom animation curves cannot be expressed in a recipe.

    RecipeSectionImporterBase

    Shared base for section importers. Centralises enum parsing and the idempotent create-or-update ("upsert") of a UnityEngine.ScriptableObject that carries Serenity's IFoundationSettings identity, so concrete importers only describe how to populate their fields.

    RecipeUiOptionFactory

    Builds and validates UiOptions from recipe option DTOs. Produces the flat fields (id, label, value/interaction type, a simple string default, translation flags); the option's submit signals are wired separately through ApplyOptionSignals(SerializedProperty, RecipeUiOptionDto[], List<string>) (they need the serialized property).

    Interfaces

    ISerenityRecipeSectionImporter

    A handler responsible for one recipe section. Section importers validate their own data, resolve references, and create or update the assets for that section. New sections are added by implementing this interface and registering the importer with the engine — no existing importer changes.

    In this article
    © 2026 Serenity. All Rights Reserved