Kilimanjaro Warehouse

WEBとかゲーム開発のことについて書きます。

Spriteでワイプエフェクトを作成した (360度編)

Unityで画像を表示する方法に、Sprite RendererとuGUIのImageがあります。

ImageコンポーネントにはImage Typeという項目があり、
これを使うことで簡単にワイプエフェクトを作ることができます。
docs.unity3d.com


しかしSprite RendererにはこのImage Typeの項目はありません。
今回私はSpriteで360°ぐるっとワイプを行うエフェクトを作りたかったので、
そのようなシェーダーを書いてみました。


こちらの記事を参考に、今回の目的に合うように改造させていただきました。
qiita.com


動きはこんな感じです。


マテリアルのプロパティからワイプエフェクトの値を設定できます。
・FillAmount: 表示する画像の量
・Clockwise: 時計回りかどうか
・FillFromX(Y): ワイプをどこから開始するかのXとYの位置

FillFromX(Y)は-1~1の値を取り、
設定することでワイプの開始位置を定めることができます。

FillFromXを0, FillFromYを-1のようにすると
ImageのFillOrigin: Bottomと同じ開始位置になります。

詳しい使い方はこちらのプロジェクトを参考にしてください。
github.com