logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class TransformRotationSequenceLayerSO

    Procedural layer that animates through a sequence of local-Z-rotation steps. Applies rotation changes via TransformDelta for per-instance animation.

    Common applications: wiggle/shake reactions, a retro spinning pickup icon, rumble/jitter.

    Inheritance
    object
    ProceduralLayerSO
    TransformRotationSequenceLayerSO
    Implements
    IProceduralLayer<UnityProceduralContext>
    IFoundationSettings
    Inherited Members
    ProceduralLayerSO.Id
    ProceduralLayerSO.Guid
    ProceduralLayerSO.displayName
    ProceduralLayerSO.phaseMode
    ProceduralLayerSO.repeatCount
    ProceduralLayerSO.Evaluate(in UnityProceduralContext, float, ref PoseDelta, ref MaterialDelta)
    ProceduralLayerSO.Evaluate(in UnityProceduralContext, float, ref PoseDelta, ref MaterialDelta, ref TransformDelta, ref ActivationDelta)
    ProceduralLayerSO.Evaluate(in UnityProceduralContext, float, ref PoseDelta, ref MaterialDelta, ref TransformDelta, ref ActivationDelta, ref UiColorDelta)
    ProceduralLayerSO.OnLayerDeactivated()
    ProceduralLayerSO.DisplayName
    ProceduralLayerSO.PhaseMode
    ProceduralLayerSO.RepeatCount
    Namespace: Serenity.ProceduralAnimator.Infrastructure.ProceduralLayers
    Assembly: Serenity.UnityProceduralAnimator.Infrastructure.dll
    Syntax
    public class TransformRotationSequenceLayerSO : ProceduralLayerSO, IProceduralLayer<UnityProceduralContext>, IFoundationSettings
    Remarks

    Known pre-existing quirk (not introduced or fixed here): a finite-repeat ON_ACTIVATE sequence that expires mid-seam can show a one-frame snap on its final tick, because ProceduralAnimatorComponent calls Evaluate before ProceduralLayerWeightScheduler.DeactivateLayersPastTheirRepeatWindow in the same frame — the layer still evaluates (and can land mid-wrap) one frame before the lifetime tick deactivates it. Left as-is; this is an ordering issue in the animator's tick, not in this layer's angle math.

    Constructors

    TransformRotationSequenceLayerSO()

    Declaration
    public TransformRotationSequenceLayerSO()

    Properties

    DrivenChannels

    Writes only Transform — see the 3-delta Evaluate(in UnityProceduralContext, float, ref PoseDelta, ref MaterialDelta, ref TransformDelta) override below.

    Declaration
    public override ProceduralChannels DrivenChannels { get; }
    Property Value
    Type Description
    ProceduralChannels
    Overrides
    ProceduralLayerSO.DrivenChannels

    SequenceDurationSeconds

    The sum of all step durations — one full pass through the sequence. Used together with RepeatCount in ON_ACTIVATE mode to know when the sequence has repeated enough times to auto-deactivate.

    Declaration
    public override float SequenceDurationSeconds { get; }
    Property Value
    Type Description
    float
    Overrides
    ProceduralLayerSO.SequenceDurationSeconds

    Methods

    Evaluate(in UnityProceduralContext, float, ref PoseDelta)

    Legacy pose-only evaluation. Does nothing for transform layers.

    Declaration
    public override void Evaluate(in UnityProceduralContext ctx, float weight, ref PoseDelta pose)
    Parameters
    Type Name Description
    UnityProceduralContext ctx
    float weight
    PoseDelta pose
    Overrides
    ProceduralLayerSO.Evaluate(in UnityProceduralContext, float, ref PoseDelta)

    Evaluate(in UnityProceduralContext, float, ref PoseDelta, ref MaterialDelta, ref TransformDelta)

    Evaluates the rotation sequence and adds the current local Z rotation to the transform delta.

    Declaration
    public override void Evaluate(in UnityProceduralContext ctx, float weight, ref PoseDelta pose, ref MaterialDelta material, ref TransformDelta transform)
    Parameters
    Type Name Description
    UnityProceduralContext ctx
    float weight
    PoseDelta pose
    MaterialDelta material
    TransformDelta transform
    Overrides
    ProceduralLayerSO.Evaluate(in UnityProceduralContext, float, ref PoseDelta, ref MaterialDelta, ref TransformDelta)

    OnLayerActivated()

    Optional initialization called when the layer becomes active. Override to set up any required runtime state.

    Declaration
    public override void OnLayerActivated()
    Overrides
    ProceduralLayerSO.OnLayerActivated()

    Implements

    IProceduralLayer<TContext>
    IFoundationSettings
    In this article
    © 2026 Serenity. All Rights Reserved