お世話になっております。
しゃまとんです。

unityで何かしらのオブジェクトに対して、バウンドアクション(跳ねるような動作)をさせたいなーと思いまして、その際のメモです。

やはりtween系のアセットを利用してやるのが楽そうだなということで、今回もiTweenを使うかな−と思っていたのですが、 こんな情報を見まして。

なるほど、iTweenに慣れてしまう前にDOTweenにするのが良いか RT @takaoka_hide: DOTweenと他のTweenAssetのスピード比較表 pic.twitter.com/24283nfP3v — ホウチ (@houchi_game) 2016年4月22日

後々処理落ちが発生すると面倒そうだな…というのと、DoTweenが軽くてよさそうだなということで、 使い始めがてら利用して見ました。

DoTweenではtransformに対して、Tweenの関数が埋め込まれる形で利用できるように実装されていることで、 iTweenよりも簡潔に記載できるようです。callbackも簡単に設定できました。

とりあえず跳ねるっぽいコードです(callbackはログ出力のみです)。 利用する際はusingが必要です。テキスト等のUIに追加してください。

using UnityEngine;

// これを追加する
using DG.Tweening;

public class BoundText : MonoBehaviour {
  // Use this for initialization
  void Start () {
  }

  // Update is called once per frame
  void Update () {

    // キー入力
    if (Input.GetKeyDown(KeyCode.H)) {
      // 跳ねるっぽく
      transform.DOLocalMoveY(-30f, 2f).SetEase(Ease.OutBounce);
      transform.DOLocalMoveX(30f, 2f).OnComplete(callback);
    }
  }

  // コールバック
  private void callback() {
    Debug.Log("do tween callback!!");
  }
}

動作はこんな感じになります。

iTweenよりも直感的だったので、今後はこちらを利用したいと思います。
以上です。

■参考