3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UnityのiTweenを試してみる その3 Scale系

Last updated at Posted at 2018-05-17

株式会社ZOOA(ゾーア)のzobです。[@twitter]

弊社はフリーランスや、個人事業主、給料UPを目指している方向けに高単価求人案件配信サイト(ZOB)も運営しておりますので是非ご覧ください!

前回に引き続き、iTweenを色々と試してみました。

iTween

今回はScale系のメソッドを試してみました。

検証で使用したUnityバージョンは以下の通りです。
Unity2018.1.0f2

#iTween.ScaleTo

ScaleToは指定した値まで拡大・縮小アニメーションを行います。
使い方は以下の通りです

iTween.ScaleTo(gameObject, iTween.Hash("x", 10f));

image.gif

上記のGifはアニメーションの様子をわかりやすくするため、以下の通り5秒の時間指定があります。

iTween.ScaleTo(gameObject, iTween.Hash("x", 10f, "time", 5f));

感覚的にはMoveTo、RotateToと同じように使えそうです!

iTween.ScaleTo(gameObject, iTween.Hash("x", 10f, "y", 10f));
iTween.ScaleTo(gameObject, iTween.Hash("x", 10f, "z", 10f));
iTween.ScaleTo(gameObject, iTween.Hash("y", 10f, "z", 10f));

Scaleを3つ指定することもできます!

iTween.ScaleTo(gameObject, iTween.Hash("x", 10f, "y", 10f, "z", 10f));

以下のように、Hashで同じ座標を2回以上指定すると動かない(エラーが出る)ので注意が必要です。

iTween.ScaleTo(gameObject, iTween.Hash("z", 10f, "z", -10f));

#iTween.ScaleFrom

ScaleFromは指定した値から、元の値に拡大・縮小アニメーションさせます。
使い方は以下の通りです。

iTween.ScaleFrom(gameObject, iTween.Hash("x", 10f);

image.gif

#iTween.ScaleUpdate

ScaleUpdateはScaleToと同じ、指定した値に拡大・縮小アニメーションさせます。

iTween.ScaleUpdate(gameObject, iTween.Hash("x", 10f);

MoveUpdate、RotateUpdateと同じ、Updateで呼ばないと拡大・縮小アニメーションされません。

iTweenTest.cs
public class iTweenTest: MonoBehaviour
{
	void Update()
    {
        iTween.ScaleUpdate(gameObject, iTween.Hash(""x", 10f));
    }
    
}

ScaleUpdateはUIのスクローラー等でオブジェクトの拡大縮小を動的に行いたいと使うと便利です。

#iTween.ScaleBy

ScaleByは現在の値から、指定した値を乗算して拡大・縮小アニメーションさせます。

iTween.ScaleBy(gameObject, iTween.Hash("x", 10f);

image.gif

ScaleByは元のScaleの値×指定したScaleの値で拡大・縮小アニメーションの最大値を決めているようです。

以下のように2fを初期値として入れている場合、20fまで拡大アニメーションが走るため注意が必要です。

image.gif

#iTween.ScaleAdd

ScaleAddは少々特殊な動作をします。
ScaleAddを以下の通り単体で呼び出した場合は、現在のオブジェクトのScale値+ScaleAddで設定した値の分だけ拡大・縮小アニメーションを行います。

iTween.ScaleAdd(gameObject, iTween.Hash("x", 10f, "time", 5f));

image.gif

Addが付いている通り、ScaleAddは他の拡大・縮小アアニメーション実行中でも利用可能でが、Scale系のアニメーションが再生されている場合は、一度拡大・縮小アニメーションがストップ後、ストップ時点でのオブジェクトのScale値+ScaleAddで設定した値の分だけ拡大・縮小アニメーションを行います。

説明だけだと分かりにくいと思うので、以下のサンプルコードで動作を試します。

iTween.ScaleTo(gameObject, iTween.Hash("x", 10f, "time", 5f));
iTween.ScaleAdd(gameObject, iTween.Hash("y", 10f, "time", 5f, "delay", 0.5f));

image.gif

結果は上記の通り、ScaleToによりXが10fになる前に拡大・縮小アニメーションが止まり、次のScaleAddでY方向にScaleされました。

まとめ

Scale系を一通り試してみました。拡大・縮小アニメーションがこんなにも簡単にできるのはいいですね。
他にPunchScale、ShakeScaleがありますが、これは後日検証して記事に書きます。

次回もiTweenの検証結果を書いていきます!

・技術検証協力 荻野雄季(Twitter, Qiita)


UnityのiTweenを試してみる
その1 Move系
その2 Rotate系
その3 Scale系←今ココ
その4 Shake系
その5 Punch系


株式会社ZOOA(ゾーア)
弊社はフリーランスや、個人事業主に特化したSES案件共有サイト(ZOB)も運営しておりますので給料UPを目指している方は是非こちらもご覧ください!


3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?