【Unity Visual Scripting】UVSでのDOTweenの設定から使い方、便利なサブグラフまで紹介
Unity Visual Scripting(以下UVS)でDOTweenを使うぞ
DOTweenってみんな使っているとは思いますが、UVS導入の解説記事とかが意外と無かったので残します!
Unity 2021.2.8f1
設定
既にDOTweenがプロジェクトに追加されているとします。
まず最初にPreference/Visual ScriptingsのAOT SafeModeをオフにします。
でないと後ほどクラスが追加できないことがあります。
次にProject Settings/Visual Scripting内に移ります。
UVSで追加のクラスやメソッドを使用するには、新たにノードユニットを生成する必要があります。
その設定についてはNode LibraryとType Optionsの2箇所より行います。
まず初めにNode Libraryを開き、DOTweenとDOTweenEditorを追加します。
次にTypeOptionを開き、使いたいDOTweenのクラスを追加していきます。
基本以下のクラスを設定すれば、おおよそのケースで問題ないでしょう。
使わないクラスなどがあれば省くこともできます。
各クラスの中身は以下のような感じです。
-
必須
DOTween
DOTweenのメインクラスです。
Tweener
動きの設定そのものです。
ShorcutExtensions
DOMove、DORotate、DOPunchなどが入っています。 -
オススメ
Sequence
Sequenceそのものなので、Sequence使うなら必須です。
Tween
TweenerとSequenceの抽象クラスでこれ使えば両方まとめて動かせます。
TweenSettingExtensions
Tweenの拡張クラスです。
SequenceのAppendなどが入っているので、Sequence使うなら必須です。 -
オプション
TweenExtensions
Tweenの拡張クラスです。
TweenからDurationを取り出せるTween.DurationとかFlipとか入ってます。
TweenParams
複数のTweenに対して共通のパラメータを使いたい時用のデータ保持クラス
Tween.SetAsで使えます。
DOVirtual
DOVirtualクラスです。後ほど紹介するFloatのサブグラフを使う場合は必要です。
DOTWeenModuleUI
UI関係のDOColor、DOFadeなどが入っています。
どれに何が入っているかの詳細は下記のDOTweenのドキュメントで参照できます。
全て設定できたらGenerateをクリックします。
するとDOTweenのノードユニットが生成され、UVSでDOTweenのメソッドが使用できるようになります。
基本的な使い方
使いたいユニットを繋げるだけです。
EasingやDelayなどのオプションを使いたい場合は、Setユニットがあるので、Tweenerクラスを出して繋げていきます。
このオプション系を個別にいちいち繋げるのは面倒くさいので、ひとつにまとめたサブグラフを作っちゃうと便利です。
Sequenceの使い方
Sequenceを使いたい場合は以下のような形になります。
最初にDOTween.SequenceでSequenceを定義したあと、AppendやJoinでSequence全体を作り、そこに個別にTweenをぶら下げる感じですね。
上記のTweenOptionsをそのまま繋げても機能します。
Tweenのコールバックを受けたい
DOTweenでTweenのコールバックなどはラムダ式で書く必要があるのですが、UVSではラムダ式は対応していません(してたらすみません)
なのでそれっぽいサブグラフを作ります。
自分はTimerユニットを使って無理くりやってます。
Timerを通るとFlowが変わっちゃうので、Flow VariablesやCacheが跨いで使えないのが玉に瑕です。
FloatをTweenさせたい
同じ理由でDOVirtualやDOTween.Toも使えないので、FloatをTweenさせたい場合もTimerユニットで無理やり動かしちゃいます。
まとめ
DOTweenめちゃくちゃ便利ですが、UVSではコールバックを素直に使えないのがちょっと辛いところです。
上記の例で出したサブグラフは以下でDLできます。
Tween、TweenSettingExtensions、TweenExtensions、DOVirtualの設定が必要になります。
Discussion