DOTween v1.2.420での魅力的な新機能

解説

DOTween v1.2.420が公開

昨日、DOTweenのアップデートが公開され、最新版はv1.2.420となりました。

 

リリースノートはこちら。

Upgraded to DOTween 1.2.420 – New minimum Unity version required: 5.6.7 IMPORTANT: The Demigiant folder must now be inside the “Plugins” folder. Create the “Plugins” folder if you don’t already have it, then move the “Demigiant” folder in there before updating.

WHAT’S NEW – DOTWEEN PRO
NEW: TextMesh Pro per-character animation (skew, scale, rotate, translate) with extra handy methods to transform single characters without animating them
NEW: Added TextMeshPro.DOCounter shortcut
NEW: Added DOPath.PlayById method
BUGFIX: Fixed DOTweenPath drawing errors on Mac and when Unity’s editor UI is upscaled
BUGFIX: Fixed DOTweenPath handles throwing an error on Unity 2020.2

WHAT’S NEW – DOTWEEN CORE
NEW: Added Async Await methods
NEW: Added SetDelay overload for Sequences that sets the delay as a one-time occurrence instead of using PrependInterval
NEW: Implemented isRelative parameter in From(value) overload
NEW: Added Rigidbody2D.DOPath/DOLocalPath
NEW: Added SetLookAt overload that allows to keep the Z rotation stable
CHANGE: tween.IsActive() now returns FALSE also if the tween is NULL
BUGFIX: Fixed error when completing a Sequence set to Yoyo LoopType but without any loops
BUGFIX: Fixed rare bug with zero-duration Sequences that have a single loop of Yoyo type and an internal callback
BUGFIX: Fixed DOTweenComponent sometimes being added to the scene when stopping the game in editor mode
BUGFIX: Fixed rare Unity crash when calling OnKill when the application is quitting
BUGFIX: Prevented ASMDEF from trying to generate Pro files when Pro is not present

https://assetstore.unity.com/packages/tools/visual-scripting/dotween-pro-32416#releases

 

この中から、特に気になったものを見ていきます。

 

v1.2.420の気になる変更点

DemigiantフォルダがPlugins直下に移動

これまでAssets直下にインポートされていたDemigiantフォルダですが、ついにPluginsフォルダ直下にインポートされるようになりました。

 

普段使う他のアセットは結構Plugins直下にインポートされるものも多いので、まとめられて個人的には地味に嬉しいアップデート。

 

以前のバージョンを使っていてDemigiantがAssetsフォルダ直下などにある場合でも、Unityエディタのインポート機能がよしなにやってくれるみたいです。

が、追加のファイルがある場合にDemigiantが2つできてしまうことになるので、公式リリースノートにもあるように既存のDemigiantフォルダをPluginsフォルダ直下に移動させてからアップデートをするのが良いでしょう。

 

TextMeshProで文字ごとにアニメーションが可能に

TextMeshProコンポーネントとして一括で文字列をアニメーションさせるだけだったのが、一文字ずつ個別にアニメーションさせられるようになりました。c

 

任意の文字だけアニメーションさせたりとか

 

全文字を個別にアニメーションさせたりできます。

 

面白い機能なので、別途詳しく記事にしたいと思います。

 

TextMeshProでカウンターができるDOCounter()追加

DOCounterという拡張メソッドが新たに追加され、TextMeshProでint型によるカウンターが実装できるようになりました。(Pro版のみ)

 

リザルト画面のスコア表示だったり、ゲームスタート時のカウントダウンなんかに便利そうですね。

 

3桁ごとにカンマを入れてくれたりもします。(オプションで消すこともできます)

 

async/awaitに対応したメソッド追加

UniTaskなどの非同期処理で使える、Task型を返すメソッドが追加されました。

これまではWaitFor○○○というコルーチン用のメソッドしかありませんでしたが、async/awaitにも対応されました。

 

追加されたのは以下の6つ。

 

AsyncWaitForCompletion()

await myTween.AsyncWaitForCompletion();

Killされるか、Completeするまで待機します。

 

AsyncWaitForElapsedLoops(int elapsedLoops)

await myTween.AsyncWaitForElapsedLoops(10);

Killされるか、指定された回数ループするまで待機します。

 

AsyncWaitForKill()

await myTween.AsyncWaitForKill();

Killされるまで待機します。

 

AsyncWaitForPosition(float position)

await myTween.AsyncWaitForPosition(0.3f);

Killされるか、指定秒数経過するまで待機します。

ただし、SetDelay()で遅延している時間は含みません。

 

AsyncWaitForRewind()

await myTween.AsyncWaitForRewind();

Killされるか、Rewindするまで待機します。

 

AsyncWaitForStart()

await myTween.AsyncWaitForStart();

Killされるか、Tweenが開始するまで待機します。

遅延処理がある場合は、遅延後まで待機します。

 

SequenceのSetDelay()がループごとにも対応可能に

これまでSetLoop()した際のSequenceは、最初に一回だけ遅延されるだけでループ間は遅延されないという仕様でした。

今回新たにSetDelay()のオーバーロードが実装され、第2引数のasPrependedIntervalIfSequenceにtrueを指定するとループごとに遅延させることができるようになりました。

 

これ本当に欲しかったやつ!

別途記事書きます。

 

TweenがnullのときIsActive()がfalseを返すように

TweenクラスのIsActive()メソッドについて、Tween型の変数がnullの場合はエラーになっていましたが、今回からはnullエラーにならずにfalseを返すようになりました。

Tween tween = null;

// 以前
Debug.Log(tween.IsActive());  // -> NullReferenceException: Object reference not set to an instance of an object

// v1.2.420以降
Debug.Log(tween.IsActive());  // -> false

 

まとめ

今回のアップデートは個人的にはかなり嬉しいものでした。

 

特にTextMeshProの拡張メソッドが便利そうなので、Pro版のメリットが高まりそうです。

コメント

タイトルとURLをコピーしました