Tween
簡単に各種アニメーションが実装出来るNGUIのTween。
今回はこれをスクリプトからあーだこーだしていきます!
Begin
まずはスクリプトからTweenを追加する方法です。
gameObject.AddComponent<TweenAlpha> ();
上記のように、AddComponentで追加することも可能ですが、Tweenには専用の追加メソッドBeginがあります!
Beginメソッドは以下の通りです。
TweenAlpha.Begin (gameObject, duration, alpha);
Beginの利点の一つ目はアニメーションの時間(duration)やTweenAlphaなら透明度(alpha)などの設定値を同時に設定出来る事です。
シンプルなアニメーションであればこれだけで十分ですね。
利点の二つ目は既に同じ種類のTweenが設定されてる場合、上書きしてくれる事です。
例えば、AddComponentで追加し続けると…
のように大量に同じスクリプトが追加されてしまいますが、Beginでは常に一つにしてくれます!便利!
その他の設定方法
Beginは便利ですが、下の画像でいうToとDurationしか設定出来ません。
なので、その他の設定方法です。
From, To
FromとToの設定は以下の通り。
GetComponent<TweenAlpha> ().from = 0; GetComponent<TweenAlpha> ().to = 1;
そのまんま!
Play Style
Play Styleはstyleから変える事ができます。
GetComponent<TweenAlpha> ().style = UITweener.Style.Once; GetComponent<TweenAlpha> ().style = UITweener.Style.Loop; GetComponent<TweenAlpha> ().style = UITweener.Style.PingPong;
なお、Onceが一度きり、LoopがFrom→To、From→To…と最初からの再生ループさせる、PingPongがFrom→To→From…と最後までいったら逆再生で初期状態にアニメーションしてループ、という感じですね。
Animation Curve
Animation Curveの設定はこんな感じ。
GetComponent<TweenAlpha> ().animationCurve = AnimationCurve.Linear(timeStart, valueStart, timeEnd, valueEnd); GetComponent<TweenAlpha> ().animationCurve = AnimationCurve.EaseInOut(timeStart, valueStart, timeEnd, valueEnd);
Linearが直線的に変化させて、
EaseInOutが最初と最後緩やかって感じですかね。
EaseInやEaseOutは無い様子…これはInspectorからやった方が設定しやすそうな項目ですね。
Duration, Start Delay, Tween Group,
ここらへんもFromとTo同様そのままです。
GetComponent<TweenAlpha> ().duration = 1; GetComponent<TweenAlpha> ().delay = 1; GetComponent<TweenAlpha> ().tweenGroup = 1;
グループってどう使うかよく分かってなかったり…。
Ignore Time Scale
Time Scaleの影響を無視するか否かのIgnore Time Scaleの設定はこちら
GetComponent<TweenAlpha> ().ignoreTimeScale = true;
ストップボタンを押してTime.timeScale = 0;にした後にTweenでメニュー表示!みたいなのやる時に便利ですね。
onFinished
最後にアニメーションが終了した後に実行されるonFinishedの設定です。
これには二つ設定方法があるみたいなのでまとめて紹介!ちなみにTweenのスクリプトと同じスクリプト内のFinish()というメソッドを実行しようとしています。
EventDelegate.Set (GetComponent<TweenAlpha> ().onFinished, this.Finish); TweenAlpha.Begin (gameObject, 0, 1).onFinished.Add (new EventDelegate (this, "Finish"));
下はメソッド名を文字列で指定するので、ミスを減らすためにも上の方が好みかなーっと。
終わりに
NGUIもTweenも便利ですねー遂に新GUIシステム、uGUIも登場しましたがNGUIに不満がない所かものすごい便利なのでuGUIは個人的には当分いいかなーといった状況です。公式ツールってのは魅力ですけどね(:3っ)∋〜