Namespace Serenity.EventDispatcher.Infrastructure.Editor
Classes
SerenityEditorSignalDispatcher
Editor-only entry point that lets an authoring window dispatch an EventDispatcherSignal through the live IEventDispatcherService while Play Mode is running — e.g. a "Fire Now" preview button on a settings builder.
Deliberately does not latch the resolved service. SignalEmitterComponent caches a
successful lookup because it lives on a gameplay object that re-runs every frame for the lifetime of a
single Play session. This class is the inverse: it is called from an editor window that survives Play
Mode exit and domain reloads, so a service resolved during one Play session would be a dangling
reference on the next one. Resolving fresh on every call trades a cheap repeated lookup for correctness
across sessions.
SerenitySignalFlowBrowserWindow
Read-only master-detail node diagram for the project's event graph: for every
EventDispatcherSignal it shows who dispatches it
(authored Signal Definition assets and other authored dispatch sites), what listens for it (modal
settings), and what reacts to it in code ([AutoRegisterEventAction] actions).
With signals dispatched no-code (Signal Definitions / SignalEmitter / SignalReaction / action definitions)
and reactions auto-registered by attribute, "what fires this, and what happens when it does?" was
previously invisible without grepping; this surfaces it as cause → signal → effect diagram, one signal at
a time.
SignalDispatchSite
One authored, pingable asset that dispatches a signal outside the UnityEventDispatcherSignalDefinition
convention the scanner's signalTypeName field already covers — an action definition, or a menu/modal
option/slot. Value equality over all three properties lets SignalFlowScanner's existing
Add helper dedup entries via Contains(T), the same
way it already dedups plain asset-path strings.
SignalFlowScanner
Editor-only scanner that builds the signal → dispatchers/modals/reactions/emitters graph from project
types and assets. Kept separate from the window so the data collection can be reused/tested independent
of GUI drawing, mirroring AudioMixerRelationshipScanner's split for the mixer topology window.
SignalFlowScanner.ScanResult
The signal → dispatchers/modals/reactions/emitters graph for the whole project.
SignalFlowSceneTextProbe
Pure text-only harvest of every signalTypeName value out of one .unity scene file's raw
text, used by SignalFlowScanner's scene reaction scan. Public (not internal) because the
EditMode test assembly for this scanner is a separate assembly from
Serenity.EventDispatcher.Infrastructure.Editor, and the regex here is the single highest-risk
piece of the whole scene-reaction scan — a silently wrong pattern ships a scan that finds nothing, with
no compiler or runtime signal that anything is missing.
SignalReactionComponentEditor
Custom inspector for SignalReactionComponent.
Presents each reaction as a searchable dropdown of every concrete EventDispatcherSignal type in the
project plus its response UnityEvent, so "react to signal X by doing Y" can be authored without code.
Enums
SignalDispatchSiteKind
The kind of authored asset a SignalDispatchSite was discovered from: ActionDefinition assets, ViewOption (menu/modal option submit signals) and ViewSlot (menu-level show/hide/cancel/submit slots) — the latter two discovered by Serenity.EventDispatcher.Infrastructure.Editor.SignalFlowViewSignalCollector.