Table of Contents

Basic Concepts

The LitMotion API consists of several components that are crucial to understand when using LitMotion.

MotionBuilder

A structure used to construct motions. LMotion.Create() returns a MotionBuilder instance.

var builder = LMotion.Create(0f, 10f, 3f);

MotionBuilder provides methods to configure motions, allowing method chaining.

LMotion.Create(0f, 10f, 3f)
    .WithEase(Ease.OutQuad)
    .WithDelay(2f)
    .WithLoops(4, LoopType.Yoyo);

LitMotion motions are typically bound to some value. Binding triggers motion creation and playback.

var value = 0f;
LMotion.Create(0f, 10f, 3f)
    .WithEase(Ease.OutQuad)
    .Bind(x => value = x);

For more details, refer to Binding and Motion Configuration.

MotionHandle

MotionHandle controls created motions. Methods like Bind() from MotionBuilder return this handle.

var handle = LMotion.Create(0f, 10f, 3f).Bind(x => value = x);

You can manage motion presence, completion, or cancellation through MotionHandle.

var handle = LMotion.Create(0f, 10f, 3f).Bind(x => value = x);

if (handle.IsActive())
{
    handle.Complete();
    handle.Cancel();
}

For further details, refer to Motion Control.

MotionScheduler

Motion update timing is determined by MotionScheduler. Set the Scheduler using WithScheduler().

LMotion.Create(0f, 10f, 2f)
    .WithScheduler(MotionScheduler.FixedUpdate)
    .Bind(() => Debug.Log(x));

Refer to Motion Configuration for more information.

MotionAdapter

The interpolation between two values is described by structures implementing IMotionAdapter<T, TOptions>. Built-in adapters are defined within the LitMotion.Adapters namespace.

To add specific options to a motion, define a structure implementing IMotionOptions.

Refer to Custom Adapter for creating custom adapters.