Namespace Serenity.Feedback.Application.Effects
Classes
AdaptiveTriggerEffect
DualSense adaptive-trigger effect. Routed through the channel seam to a backend
(PcHidAdaptiveTriggerBackend over USB HID on desktop; a PS5-SDK backend on console).
AudioEffect
Plays a sound (an authored audio-player clip) as part of a feedback definition, so a single
PlayFeedbackSignal can fire a coordinated rumble + flash + sound cue. Unlike the
haptic effects, audio is independent of the vibration settings:
it plays even when controller vibration is disabled and its volume is never attenuated by the
haptic-intensity slider. Carries only the clip's identity (id/path) plus the routing type and
volume — the channel rebuilds an AudioPlayerClip and plays it through the audio system.
HitStopEffect
Brief time-freeze ("hit-stop"): dips Time.timeScale to TargetTimeScale for
DurationSeconds of REAL (unscaled) time, then restores the prior scale. Gameplay
timing must be deterministic, so this effect is intentionally NOT affected by global intensity.
LedEffect
Controller LED color for a duration. Hardware-agnostic: drives any controllable controller LED (PlayStation light bar on DualSense / DualShock 4, Switch Pro home-ring intensity, ...). RGBA are 0..1 floats (engine-agnostic); A doubles as a brightness multiplier so global intensity can dim the LED without changing its hue.
ScreenFlashEffect
Full-screen color flash. Curve shapes the alpha envelope over the duration (normalized time 0..1 → 0..1, multiplied by PeakAlpha); when null a built-in fast-rise/slow-fall hump is used. Driven on unscaled time so it is visible during a hit-stop.
ScreenShakeEffect
Camera screen shake: a decaying positional jitter over a duration. Amplitude is scaled by global intensity (so a "reduce motion" / lower-intensity setting calms it). Camera only — for UI shake use UiScreenShakeEffect.
UiScreenShakeEffect
UI screen shake: a decaying jitter applied to active UI shake receivers (menus, HUD) — the screen-space counterpart to ScreenShakeEffect, which shakes the camera. Amplitude is scaled by global intensity (so a "reduce motion" / lower-intensity setting calms it).
VibrationEffect
Dual-motor gamepad vibration. Wraps a FeedbackIntensity and reuses the existing FeedbackScaler so its behavior (and tests) are unchanged.
Interfaces
IFeedbackCurve
Engine-agnostic shaping curve: maps normalized time (0..1) to a value (0..1). Lets effects carry a
designer-authored envelope without the Application layer depending on UnityEngine.AnimationCurve
— the Infrastructure layer supplies an adapter that wraps the real curve.
IFeedbackEffect
One unit of feedback to actuate (vibration, LED, screen flash, hit-stop, screen shake, …).
Effects are engine-agnostic, immutable data; a channel that CanPlay the concrete type
turns it into a physical effect. The service applies global intensity via Scaled(float)
before dispatch (global enable/disable is gated separately by the service).
Enums
AdaptiveTriggerMode
Adaptive-trigger mode, modeled on the DualSense effect families. Mapped to the controller's legacy
effect bytes by the backend (e.g. PcHidAdaptiveTriggerBackend).
AdaptiveTriggerSide
Which DualSense trigger an adaptive-trigger effect targets.