クリアメモリ

プログラミングやモーショングラフィックス、便利なアプリケーションなど雑多に記録するブログ

Unity Particleが背景より後ろに隠れてしまう時の対処法

f:id:clrmemory:20170716234842j:plain

 

こんにちは。

今回はUnityでParticleを利用した際の表示優先順位で、ParticleはSpriteと違ってInspectorから設定できなかったので、その対処法を備忘録を兼ねて記載。

 

 

 

 

 はじめに

 

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も変更することができます。

詳しくはこちらを参考にしてみてください。 

www.clrmemory.com 


 

ではまた。