GUITextureをフェードアウトしたくて、コルーチンとかを調べてましたが、UnityにはiTweenという強い味方があることを思い出しました。
iTweenを使うと、位置やスケールなどを始め、様々なパラメータを簡単にアニメーションすることができます。
例えば、オブジェクトがパッと消えてしまうよりも、若干時間をかけて徐々に消えたほうが玄人っぽく見えませんか?
iTweenはUnityのAssetStoreから無料でダウンロード出来ます。
ドキュメント類はiTweenのサイトに掲載されています。
iTween :
GUITextureをフェードアウトする
guiTextureをフェードアウトするには、ColorTo()を使います。
例えば、OnMouseDown()でフェードアウトを始めるには
1 2 3 4 |
void OnMouseDown() { iTween.ColorTo(gameObject, iTween.Hash("a", 0.0f, "time", 1.0f)); } |
フェードアウトが完了した時に、何かを実行したい場合は
1 2 3 4 5 6 7 8 9 |
void OnMouseDown() { iTween.ColorTo(gameObject, iTween.Hash("a", 0.0f, "time", 1.0f, "oncomplete", "onCompleteHandler", "oncompletetarget", gameObject)); } void onCompleteHandler() { guiTexture.enabled = false; } |
注意:”oncompletetarget”を指定しないと、”oncomplete”で指定した関数は実行されません。
複合アニメーション
大きくなりつつ、消えていく
1 2 3 4 5 |
void OnMouseDown() { iTween.ScaleTo(gameObject, iTween.Hash("scale", new Vector3(2.0f, 2.0f, 2.0f), "time", 1.0f)); iTween.ColorTo(gameObject, iTween.Hash("a", 0.0f, "time", 1.0f)); } |
複数のアニメーションを続けて指定することで、並列(同時)に実行されます。
途中で止めるにはStop()
どのオブジェクトに設定したTweenを止めるのかを引数で指定します。
1 |
iTween.Stop(gameObject); |
指定しないとシーン内の全てのTweenが止まって削除されます(iTweenのソースを読むと、そう書いてありましたが、全てが止まることは確認できませんでした)。途中で止めると”oncomplete”で設定したハンドラーは実行されません。
関数やHashで指定するパラメータは沢山あります。
詳しくは、iTweenのサイト(http://itween.pixelplacement.com/index.php)を参照してください。
コメントを残す
コメントを投稿するにはログインしてください。