Skip to content

Boing Behavior

Attach Boing Behavior to a GameObject and its rendered transform will spring toward the target position and rotation you set, rather than snapping to it. Move or rotate the object however you like — the bouncy lag is applied for you each frame.

The component reads the transform you set during Update (or FixedUpdate), then writes a spring-smoothed version back during the matching late phase for rendering, and restores your original value before the next frame.

Typical Use

Drive the transform from input, scripts, tweens, or animations — anything. As long as it's set during the frame's logic phase, the spring response shows up automatically. A mouse-followed object, for example, will lag behind the cursor and settle when it stops.

Inspector at a Glance

  • Update ModeLateUpdate (default, variable Time.deltaTime), EarlyUpdate (apply at end of Update, for renderers that read transforms early), or FixedUpdate (fixed Time.fixedDeltaTime; use this if a Rigidbody drives the object).
  • Enable Position / Rotation / Scale Effect — toggle which channels bounce. Scale is off by default.
  • Translation / Rotation Lock — eliminate spring effect on selected axes, in global or local space.
  • Params / Shared Params — local spring tuning, or point at a Shared Boing Params asset to drive many components from one place.

Avoiding Sudden Jumps After Teleports

When you intentionally snap the object to a new pose, call BoingBehavior.HandleTeleport() immediately afterward. This resets the spring so the teleport isn't interpreted as a huge instantaneous velocity.

See the API reference for the full property list.