
先日、Unityでパーティクルを使っていたところ、背景の後ろに隠れて見えなくなってしまいました。
UnityのパーティクルはSpriteとは違い、Inspectorから表示順を設定できませんよね。
そこで今回は、UnityでParticleを利用した際の「表示優先順位を設定する方法」をを備忘録を兼ねて紹介します。
はじめに
ParticleというのはUnityで使用できる機能のひとつで、
- 爆発を起こしたり
- 雪を降らせたり
というような描画をひとまとめに管理することができるものです。
またそれらをプレハブに登録しておくことで、任意のタイミングで生成することができるようになります。
他にも雪を無限に降らせるというような処理をする場合は、このParticleを使うことで実装できます。
Particleが背景に隠れる
オブジェクトなどは基本的にSorting Layersという項目を変更することによって、描画の順番を調整することができます。
しかしParticle は Sorting Layers でdefaultに設定されており、Inspector上からは変更できないようです。
そこで、ParticleのSorting Layersを変更するのではなく、背景などのParticleに被ってしまうSpriteのSorting Layersを変更してしまいましょう。
Particleの描画順を変更
方法はとても簡単で、まず普段と同じようにAdd Sorting Layer を選択します。
するといつものようにSorting Layerを追加する画面が開きます。
その画面が開いたら背景の名前を追加します。 ここまでは同じですね。
続いて、Layerという字の左側をドラッグしながら初期状態で入っているDefaultの上まで持っていきます。
これでDefaultの上に先ほど作成した背景のSorting Layerが移動していると思うので、ここでは「 BK」というレイヤーを最後部に表示するレイヤーとします。
ここまでできたら、後は背景のSorting Layerを「BK」に変更しましょう。
背景のSorting LayerよりDefaultの方が手前に来るのでParticleも手前に来るというわけです。
同じように背景に設定したいオブジェクトにはすべて「BK」を設定します。
まとめ
もっと細かな順位の変更はコードで処理したりする必要があるかもしれませんが、これならば簡単に背景とParticleの表示順位を設定できるのでぜひお試しください。
ちなみにコードを使えばテキストのSortingLayerも変更することができます。
詳しくはこちらを参考にしてみてください。
ではまた。