読者です 読者をやめる 読者になる 読者になる

WonderPlanet DEVELOPER BLOG

ワンダープラネットの開発者ブログです。モバイルゲーム開発情報を発信。

Unity HOTween触ってみた

Unity

今回エンジニアブログを担当します乾です。
よろしくお願いします。

今回はUnityのTween系アセットHOTweenを紹介します。

実はこのアセット、既に改良版であるDOTweenが存在しますが今回はあえてHOTweenについて紹介します
(個人的にこちらの方が好き...


仕組み

スクリーンショット 2015-11-13 0.56.31

  • HOTween
    Tweeners、Sequencesの生成、管理。
  • Tweeners
    HOTweenによって生成され、設定した値まで実際に変化を行う。
  • Sequences
    タイムライン、TweenerやSequenceを追加し任意のタイミングで再生を行う。


設定方法

では実際にコードを書いていきます。

1:Tween

// 1秒かけてローカル座標を(100f,0f,0f)に移動(EaseTypeはEaseOutBounce)  
HOTween.To(transform, 1f, new TweenParms()  
            .Ease(EaseType.EaseOutBounce)  
            .Prop("localPosition", new Vector3(100f,0f,0f))));  

HOTween.To(Tween対象, 所要時間, new TweenParms()
       .Ease(Easeタイプの指定)
       .Prop(Tween対象の変数名、変更後の値));

これでTweenが出来ます!

2:Sequence

////////////////////////////////////   
// 画面外からダイアログが遷移してくる  
////////////////////////////////////   
  
  
// ボタンの入力を無効化  
closeButton.interactable = false;  
  
// ウィンドウのRectTransform取得  
RectTransform rTransform = GetComponent<RectTransform> ();  
  
// シーケンス生成  
Sequence sequence = new Sequence ();  
// Tweenを追加(座標変更)  
sequence.Append(HOTween.To(rTransform, 1f, new TweenParms()  
        .Ease(EaseType.EaseOutBounce)  
        .Prop("localPosition", new Vector3(0f,0f,0f))  
        .OnComplete(()=>{  
            Debug.Log("Tween完了コールバック");  
        })));  
  
// Tweenを挿入(Scale変更)  
sequence.Insert(1f, HOTween.To(rTransform, 1f, new TweenParms()  
        .Ease(EaseType.EaseInOutBounce)  
        .Prop("localScale", new Vector3(1f,1f,1f))));  
// シーケンス完了時のコールバックを設定  
sequence.ApplyCallback (CallbackType.OnComplete, () => {  
    Debug.Log("Sequence完了コールバック");  
    // ボタンの入力を有効化  
    closeButton.interactable = true;  
});  
  
// シーケンス開始  
sequence.Play();  

こんな感じで複数のTweenを1つにまとめる事が出来ます、またTweener、Sequence単位でのコールバック設定が可能です。


所感

Tween系のアセットの中で割と記入量が多い方であり手軽さには欠けるかもしれませんが、その分汎用性の高さが光るアセットだと思います。
改良版のDOTweenの方も良いですが、こちらも一度使ってみてください。