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.