[Unity] スプライトをフェードアウトさせる

By | 2014-06-22

Unity上でスプライトを徐々にフェードアウトさせる方法についてのメモ書きです。
これは簡単な爆発エフェクトなどに使えます。

スプライト描画を行うコンポーネントはSpriteRendererであり、この中にColorフィールドがあります。
Colorフィールドはスプライトの絵を貼り付ける下地となる紙のようなもので、この紙の色を自由に設定できます。
デフォルトは白色なので、スプライトの絵がそのままの色で貼り付けられるようになります。

Colorには透明度(=αチャネル)も指定することができます。
したがって、このαチャネルの値を変更ことで半透明のスプライトを表示したり、透明度を変化させることも可能です。

今回はこの機能を利用してスプライトをフェードアウトするスクリプトを書いてみました。

上記スクリプトをフェードアウトさせたいGameObjectに追加すると、指定された時間でフェードアウトして最後には消滅します。

まずSpriteRendererコンポーネントを取得し、

Update()メソッドの中でSpriteRendererのαチャネルを更新します。

αチャネルを含め、色の各成分の取り得る範囲は0~1です。

完全にフェードアウトしきったら、自身をDestroyしてシーンから消滅させます。

これで冒頭で述べた動作を実現できます。

今回はSpriteRenderer限定ですが、この処理を少し応用すればマテリアルなどのフェードアウト処理も実現できます。

One thought on “[Unity] スプライトをフェードアウトさせる

  1. Pingback: Unityとフェード | それは悲しみ(˘ω˘ )

コメントを残す

メールアドレスが公開されることはありません。