LitMotion v1から移行する
v2では、新機能の追加に加え一部のAPIの刷新が行われました。そのため、v1から移行するために変更が必要な部分がいくつかあります。
モーションの再利用
v1ではMotionBuilderに対してPreserve()メソッドが利用できましたが、これはv2では廃止されました。
代わりにMotionHandle.Preserve()が追加されました。Preserve()を呼び出したMotionHandleは完了後も無効にならないため、同じモーションを再利用することが可能になります。(ただし、明示的にCancel()で破棄させる必要が生じます)
また、同じモーションの設定を使い回したい場合はMotionSettings<T, TOptions>が利用できます。
Bind拡張メソッドの移動
BindToUnityLogger()とBindToProgress()はLitMotion.Extensionsに移動されました。
これらの拡張メソッドを利用するにはLitMotion.Extensions.asmdefの参照とusing LitMotion.Extensions;が必要になることに注意してください。
BindWithState() -> Bind()
v1でクロージャを避けるために存在していたBindWithState()はBind()のオーバーロードに変更されました。また、v2からは構造体のStateを受け入れるようになっています。(これは若干のアロケーションが発生しますが、アロケーションの少なさや呼び出し速度の点でクロージャよりも効率的です)
// v1
LMotion.Create(0f, 1f, 1f)
.BindWithState(state, (x, state) => { });
// v2
LMotion.Create(0f, 1f, 1f)
.Bind(state, (x, state) => { });
ToYieldInteraction() -> ToYieldInstruction()
コルーチンでMotionHandleを待機するためのメソッド名がToYieldInteraction()からToYieldInstruction()に変更されます。(これはv1の命名が誤りであったため、v2で改めて修正されました)
LoopType.Yoyoの挙動
v1のLoopType.Yoyoは命名から想定される動作になっていませんでしたが、v2ではこれが修正されました。従来の動作を維持したい場合は、v2で追加されたLoopType.Flipを利用してください。
// TODO: 画像の追加
enumの命名の変更
v2では一部のenumの命名がアメリカ英語の綴りに変更されます。
LinkBehaviour->LinkBehaviorCancelBehaviour->CancelBehavior
WithBindOnSchedule() -> WithImmediateBind()
v1におけるWithBindOnSchedule()はWithImmediateBind()に名称が変更されました。また、デフォルトの値がtrueに変更されています。
// v1
LMotion.Create(0f, 1f, 1f)
.WithBindOnSchedule()
.BindToPositionX(transform);
// v2
LMotion.Create(0f, 1f, 1f)
.WithImmediateBind() // デフォルトがtrueであるため、明示的にこれを呼び出す必要はありません。
.BindToPositionX(transform);
ManualMotionDispatcher
v2ではManualMotionDispatcherクラスが通常のクラスに変更されました。これにより複数のManualMotionDispatcherを作成可能になります。
v1から移行する際には、代替としてManualMotionDispatcher.Defaultが利用可能です。これはグローバルに利用可能なManualMotionDispatcherのインスタンスです。
// v1
ManualMotionDispatcher.Update(0.1);
// v2
ManualMotionDispatcher.Default.Update(0.1);
また、v2ではdispatcher.SchedulerからそのDispatcherにスケジュールするIMotionSchedulerを取得できます。MotionScheduler.Manualは引き続き利用可能で、これはManualMotionDispatcher.Default.Schedulerのエイリアスになります。
MotionTrackerウィンドウの廃止
v1で存在していたMotionTrackerウィンドウは廃止されました。v2ではより強力な機能を備えたLitMotion Debuggerが追加されているため、そちらを利用してください。