おもちゃラボ

Unityで遊びを作ってます

【DOTween】DoPunchScaleの拡大率を指定する方法がおかしい!

DOTweenには、一回モデルを拡大してから、ビヨンビヨ〜ンと拡縮しながらもとのサイズに戻す「DoPunchScale」というメソッドがあります。
f:id:nn_hokuson:20211102155826g:plain:w450
DoPunchScaleの第1引数にはVector3型のscale、第2引数にはfloat型のアニメーション時間を渡します。

transform.DoPunchScale(Vector3.one*3.0f,  1.0f); // サイズ「3」まで拡大して戻す?

DoScaleメソッドもDoMoveメソッドも「拡大後」「移動後」の値を渡すので、DoPunchScaleの第1引数にも「拡大後のサイズ」を指定すると思うじゃないですか。

でもでも、DoPunchScaleは違うんです、「現在のスケールからどれぐらい大きくしたいか」という差分を渡すんです。つまり元のサイズが1のオブジェクトにDoPunchScaleを使うと次のようになるんです。

transform.DoPunchScale(Vector3.one*3.0f,  1.0f); // サイズ「4」まで拡大して戻る
transform.DoPunchScale(Vector3.one*-1.0f,  1.0f); // サイズ「0」に縮小して戻る

これ、トラップな気がするぞ!