Skip to content

Smoothing Actions

Smoothing actions apply frame-independent smoothing after other actions change a Transform.
They’re meant to run later in the state and (by default) in LateUpdate (Every Frame) so they naturally happen after earlier actions.

Example:

  1. Transform Set Position – sets a new position
  2. Smooth Position – gently eases to that position

Smooth Position

Without Smooth Position:

Smooth Position Off

With Smooth Position:

Smooth Position On


Parameters (shared)

Parameter Description
Transform The Transform to smooth.
Smooth Time Time in seconds to reduce the difference by about half.
Smaller = snappier.
Max Speed Optional max movement/rotation/scaling speed.
0 = uncapped.
Teleport Threshold If the change in one step exceeds this distance/angle, snap instead of smoothing.
0 = disabled.
Use Rigidbody Use Rigidbody or Rigidbody2D if present (physics-safe MovePosition/MoveRotation).
Hint: set Interpolation = Interpolate on the rigidbody.

Default update mode: LateUpdate + EveryFrame (you can override this per action).


Rotation Smoothing (3D & 2D)

Rotation smoothing has one extra toggle for “set once” flows:

Parameter Description
Lock Target On Start Locks the target on the first frame (good when the earlier action only sets rotation once). Turn off to follow a value that updates every frame.

Why this exists: rotations can appear to “stall” if the smoother keeps reading back the value it just wrote. Locking on the first frame guarantees a proper ease from the before rotation to the after rotation.


How to set it up

Action order

  • First: actions that set the new value (e.g., Look At, Set Position, Set Scale).
  • Then: the matching Smooth action. (It defaults to LateUpdate so it runs after the earlier action.)

Two common patterns

1) Value updates every frame (e.g., constantly aiming at a moving target)

  • Keep the setting action on Every Frame.
  • Rotation smoothing: turn Lock Target On Start = Off.
  • Position/Scale smoothing: no special setting needed.

2) Value set once (e.g., snap on state enter, then ease)

  • Run the setting action once (not Every Frame).
  • Rotation smoothing: leave Lock Target On Start = On (default).
  • Position/Scale: usually fine as is.

Teleport Threshold

  • Leave at 0 unless you expect rare, big jumps (target swap, camera cut, network correction).
  • Rough guides: Characters 90–120°, Cameras 120–180°, UI 30–60°; for position, choose meters that fit your world scale.

Max Speed

  • Caps movement/turn/scale per second. Works alongside Smooth Time as a hard limit.

Physics tips

  • If moving/rotating dynamic bodies, enable Use Rigidbody and set the body’s Interpolation = Interpolate.

Shake Position

TransformShakePosition applies a temporary shake offset to a Transform position, then restores the original position when finished.

Parameter Description
Transform Transform to shake.
Duration Shake duration in seconds.
Magnitude Maximum displacement magnitude of the shake.
Frequency Oscillation speed of the shake.
Use Local Space If enabled, shakes localPosition instead of world position.
Finished Event Event sent when shake completes.

Notes:

  • Requires Every Frame updates while active.
  • Shake fades out over time and returns to the original position at the end.

Quick recipes

Snap then ease (one-shot look-at)

  1. Look At (not Every Frame)
  2. Smooth Rotation (Lock Target On Start = On)

Track a moving target

  1. Look At (Every Frame)
  2. Smooth Rotation (Lock Target On Start = Off)

2D sprites

  • Use Smooth Rotation 2D (Z only). Same rules as 3D rotation.

Scaling UI or sprites

  • Use Smooth Scale (no Rigidbody toggle). Teleport Threshold typically 0.