DOTweenには、一回モデルを拡大してから、ビヨンビヨ〜ンと拡縮しながらもとのサイズに戻す「DoPunchScale」というメソッドがあります。
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」に縮小して戻る
これ、トラップな気がするぞ!