https://www.assetstore.unity3d.com/#/content/5992 (Unity Pro必須)
- iPod Touch5 iOS6で動作確認済み
- 多分Androidも動く
よくUnityアプリでシーンの遷移時にTransitionを行いたい。という意見を耳にします。
UnityではTransitionは標準装備されていません。
そこで、最近登場した「Transition Toolkit」を使用してみましょう。
まずはDemoとして提供されているWebPlayer形式の実行ファイルをご覧になるとよいでしょう
http://shallway.net/products/transitiontoolkit/WebPlayer.html
使い方はとても簡単。
Presetsの設置
まずは「Assets/TransactionToolkit/Presets」にあるTransitionToolkit.prefabをヒエラルキービューにD&Dします。
TransitionToolkitはDontDestroyOnLoadで削除されないので最初のシーンに1つだけ置くようにして下さい。
遷移先のシーン作成
- Presetsを設置したシーン
- 遷移先のシーン
この2つを用意して下さい。
私はわかりやすいように遷移先のシーンにCubeを設置しました。
スクリプトの記述
今回はデフォルトで用意されている「FadeIn」「FadeOut」を試してみます。
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour
{
[XTransition] //後述
public string presetName = "FadeIn";
private XTransTask task = null;
void Start ()
{
task = XTransitionToolkit.AddTransition (presetName);
}
void LateUpdate ()
{
if (task.ElapsedTime > 0.95f) {
Application.LoadLevel ("Test2");
}
}
}
using UnityEngine;
using System.Collections;
public class Example2 : MonoBehaviour
{
void Awake ()
{
XTransitionToolkit.AddTransition ("FadeOut");
}
}
ElapsedTimeは最新のTransitionが行われてからの経過時間です。デフォルトのFadeInは1秒かけて行われます。ちょっと前の0.95秒とすることで残り0.05秒の間にシーンのロードが行われFadeOutの処理が開始されます。
連続でAddTransitionを実行してもQueueの機能がないので上書きされ、すぐ実行してしまいます。注意して下さい。
そして出来たのがこれ
確認しやすいように上記のコードから少し手を加えています
###[XTransition]
XTransitionAttributeを作成しました。タイプセーフにpresetNameを扱うことができます。
Presetsにあるものをサポートしています。
以下は自分でXTransParamを作成から追加するまでの手順です。
-
XTransitionToolkit.csをアタッチしたGameObjectを用意する。
-
1で作成したGameObjectの子としてXTransParam.csをアタッチしたGameObjectを用意する。XTransのパラメータを適度にいじる
-
2で作成したGameObjectを1のPresets配列に格納する。