logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Namespace Serenity.Editor.AnimationHub.Gui

    Classes

    AnimationClipCurveCache

    Holds one stable UnityEngine.AnimationCurve instance per UnityEditor.EditorCurveBinding for the lifetime of a clip selection, plus a shadow copy of each for undo-correct commits.

    AnimationClipEditorPanel

    The Animation Hub's in-hub clip editor: settings, curves, animation events and a rendered preview, drawn as a bottom pane by AnimationHubWindow when a clip is opened. A plain composition root over the existing engines plus this phase's own AnimationClipCurveCache and AnimationClipPreviewScrubber — its own logic is limited to the pure helpers on AnimationClipEditorPanelState in its own file.

    AnimationClipEditorPanelState

    Pure, GUI-free logic pulled out of AnimationClipEditorPanel so it is unit testable without instantiating any IMGUI state — the same "engine stays pure" split every other Animation Hub phase draws between its Engine types and their GUI callers.

    AnimationClipPreviewScrubber

    Rendered preview for the in-hub clip editor: a "Preview" foldout (collapsed by default, zero cost while collapsed, drawn via PreviewSectionGui) that owns a Serenity.Global.Infrastructure.Editor.Preview.SerenityModelPreviewSession for the panel's model and an Serenity.Global.Infrastructure.Editor.Preview.EditorPlaybackClock driving the scrub position, and blits the sampled frame through the same shared helper.

    PreviewSectionGui

    Shared IMGUI shape for the Animation Hub's rendered preview sections: the "Preview" foldout (collapsed by default, drawing nothing while collapsed) and the viewport rect that renders its texture only on UnityEngine.EventType.Repaint and only once a preview instance exists, then blits the result through Serenity.Global.Infrastructure.Editor.Preview.ModelPreviewViewportBlit. AnimationClipPreviewScrubber and ProceduralAnimatorSimulatorGui both drive a Serenity.Global.Infrastructure.Editor.Preview.SerenityModelPreviewSession this same way; this is the one place that shape is spelled out.

    ProceduralAnimatorSimulator

    Drives a live ProceduralAnimatorComponent pipeline against a hidden preview instance of a model, so the Animation Hub can play, scrub and poke at a profile's rules/layers/actions without ever entering Play mode or touching the user's scene. Owns a Serenity.Global.Infrastructure.Editor.Preview.SerenityModelPreviewSession (the hidden instance) and an Serenity.Global.Infrastructure.Editor.Preview.EditorPlaybackClock (the simulated time source); every write this class makes lands on Serenity.Global.Infrastructure.Editor.Preview.SerenityModelPreviewSession.InstanceRoot or its own transient dictionaries — nothing is serialized, nothing is dirtied, and no asset is ever touched.

    ProceduralAnimatorSimulatorGui

    Rendered preview for the in-hub Procedural Animator simulator: a "Preview" foldout (collapsed by default, zero cost while collapsed — Bind(GameObject) is only ever called while expanded, drawn via PreviewSectionGui) that draws transport controls, the rendered viewport through the same shared helper, and one slider per state key the profile reads. Pure drawing — every stateful decision lives on ProceduralAnimatorSimulator.

    In this article
    © 2026 Serenity. All Rights Reserved