MENU

【Unity】 uGUI(Screen Space - Overlay)の前にparticleを表示させる方法

f:id:min0124:20160828115925p:plain

uGUI(Screen Space - Overlay)のcanvasのSort Orderの値で、復数のcanvas(ugui)の描画順を調整することはできますが、

Screen Space - Overlay の場合はUIが必ず最前面に来るため、パーティクルを前に表示することはできません。

f:id:min0124:20170718215902p:plain

実用性はないのですが、レンダーテクスチャを使えば、パーティクルを前に表示できそうなので試してみました。

uGUI(Screen Space - Overlay)の上にparticleを表示する方法

Render Textureを使って描画順を調整します。

f:id:min0124:20170715233528g:plain

テキストとボタンの間にパーティクル(レンダーテクスチャー)を入れています。

  • GameObject > UI >Buttonを作成

  • ParticleDisplayerの下にGameObject > UI >RawImnageを作成。

  • Asset > Create > Render Texture(Particle Render Texture)を作成し、RawImageにアサイン

f:id:min0124:20170715234206p:plain

  • パーティクル用のカメラ(ParticleCamera)を作成

  • Layerからparticleというレイヤーを作成して、カメラのCulling Maskをparticleに

  • Clear FlagsをSolid Color、アルファ0に

  • Target TextureをParticle Render Textureに

f:id:min0124:20170715234307p:plain

  • ParticleCameraの子にParticle Systemを作成。※マテリアルやテスクチャもつけて好みに調整。

  • Particle Systemのレイヤーをparticleに

  • Textを作成して、Button,RawImage,textの階層順にする

  • uguiのRect Transformを調整し、見た目の任意で調整。

  • 再生、ボタンとテキストの間にパーティクルが発生するのを確認

f:id:min0124:20170718221138p:plain

参考