Table of Contents

基本的な概念

LitMotionのAPIは数種類のパーツで構成されています。LitMotionを利用する際にはこれらの概念を理解する必要があります。

MotionBuilder

モーションを構築するために使われる構造体です。LMotion.Create()は全てMotionBuilderを返します。

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

MotionBuilderにはモーションを構成するためのメソッドが用意されています。これらはメソッドチェーンを用いて記述可能です。

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

LitMotionのモーションは基本的に何らかの値にバインディングして使用します。バインドを行うことで実際にモーションが生成され再生を開始します。

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

詳細は値のバインディングおよびモーションの設定を参照してください。

MotionHandle

MotionHandleは作成されたモーションを制御するための構造体です。MotionBuilderのBind()などのメソッドは全てこれを戻り値に持ちます。

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

モーションの存在チェックや完了/キャンセルなどの処理はMotionHandleを介して行うことが可能です。

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

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

詳細はモーションを制御するを参照してください。

MotionScheduler

モーションの更新タイミングはMotionSchedulerによって決定されます。使用するSchedulerはWithScheduler()で設定できます。

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

詳細はモーションの設定を参照してください。

MotionAdapter

2つの値を補間する処理はIMotionAdapter<T, TOptions>を実装した構造体に記述されています。組み込みのAdapterはLitMotion.Adapters名前空間内に定義されています。

また、モーションに特殊なオプションを追加したい場合にはIMotionOptionsを実装した構造体を定義します。

カスタムAdapterの作成についてはカスタムAdapterの項目を参照してください。