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
->LinkBehavior
CancelBehaviour
->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が追加されているため、そちらを利用してください。