Class ScreenShakeChannel
Feedback channel that produces camera positional shake via a decaying jitter coroutine.
Handles ScreenShakeEffect. When the target names a joined player and
GetPlayerAssignments() has an assignment for it, only that
player's camera shakes; when the target is global and split-screen assignments exist, every
assigned camera shakes together; otherwise the channel falls back to
GetActiveCamera(), which already falls back to
UnityEngine.Camera.main when nothing else is registered/selected — call
SetActiveCameraOverride(object) to pin a custom rig instead of a plain
"MainCamera" tag. The offset is applied through a UnityCameraShakeApplier (added to
each camera automatically) so it survives a camera controller that sets the camera's position
every frame. Uses unscaled time so it survives a hit-stop. UI shake lives in its own channel
(UiScreenShakeChannel).
Inheritance
ScreenShakeChannel
Assembly: Serenity.UnityFeedback.Infrastructure.dll
Syntax
public class ScreenShakeChannel : IFeedbackChannel
Constructors
ScreenShakeChannel(IFeedbackRuntime, IGameCameraService)
Initializes a new ScreenShakeChannel.
Declaration
public ScreenShakeChannel(IFeedbackRuntime runtime, IGameCameraService gameCameraService)
Parameters
| Type |
Name |
Description |
| IFeedbackRuntime |
runtime |
Coroutine host used to run and cancel the shake decay routine.
|
| IGameCameraService |
gameCameraService |
Resolves the camera(s) to shake (active-camera selection, override pin, and split-screen assignments).
|
Properties
ChannelId
Declaration
public string ChannelId { get; }
Property Value
Methods
CanPlay(IFeedbackEffect)
Declaration
public bool CanPlay(IFeedbackEffect effect)
Parameters
Returns
Play(FeedbackTarget, IFeedbackEffect)
Declaration
public void Play(FeedbackTarget target, IFeedbackEffect effect)
Parameters
Stop(FeedbackTarget)
Declaration
public void Stop(FeedbackTarget target)
Parameters
StopAll()
Declaration
Implements