基本的な概念
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の項目を参照してください。