クリア時にUIでパーティクルを発生させるために
RawImageを使用しているのですが、
せっかく加算のパーティクルを作成し、
パーティクル自体は綺麗に加算で出てくれているのですが、
RawImage自体が通常描画となってしまうため、実際のUI上でも
通常描画となってしまいます。
↓動画
https://gyazo.com/d58359412f4b986091651ab04efaf83b
RawImageを加算として描画する方法はありますでしょうか?
または、
UI上で加算のパーティクルを綺麗に加算として表示するにはどのように
するとよいでしょうか?
RawImageではなくParticleで実装されているので問題ない気はしますが、表示したいParticleはまた別のものでしょうか?
RawImageのテクスチャがどのようなものかわからなかったので、どういったものを表示したいか教えて下さい!
はい。
加算モードで表示したいパーティクルはクリア用に作った星の紙吹雪パーティクル(ClearParticle)です。
まずやりたかったことは、パーティクルをクリア時に「Clear」のtextより前面にUI画面中央から発生させたかったのですが、パーティクルオブジェクトをCanvasの子に置いても、Gameビューで描画されなかったため、
UGUI内ではパーティクルは使えないんだと思い、
描画する方法を調べたところ、
https://www.cg-method.com/unity-effect-particle/
こちらのサイトで、「uGUI(Screen Space – Overlay)の前にparticleを表示させる方法」を見つけ、こちらを参考にしました。
こちらからUIの「Raw Image」を使用することにしたのですが、
これだと、パーティクル自体(Canvas外に配置して、パーティクル専用カメラ(ParticleCamera)で撮影している)ものはちゃんと加算モードで描画されて光っているように見えるのですが、その映像を受け取っている「RawImage」では加算でなく通常モードでUIの上に描画され、光っているように見えないので、(この質問の初回に送らせていただいた動画の左の小さいパーティクル自体はちゃんと光っているように描画されてますが、それをUIに投影した右の大きなパーティクルは加算で描画されておらず、光っているように見えません)
こちらを加算でUI上に表示させる方法が知りたいです。
または、ParticleをUI上に表示できる方法をご教授いただきたいです。
①新しいカメラオブジェクトを作り、名前を「UICameraにする」
②UICameraのClearFlagsをDepthOnlyにする。
③UICameraのCullingMaskをUIレイヤーのみにする。
④UICameraのDepthを1にする。⑤CanvasのRenderModeをScreen Space - Cameraにする。
⑥CanvasのRenderCameraを先程作ったUICameraに設定する⑦ParticleCameraのClearFlagsをDepthOnlyにする。
⑧ParticleCameraのDepthを2にする
⑨TargetTextureをNoneにする(今回はRawImageを使わずに行うため)
しかしこの方法は学習コストが高く、今はおすすめできません。
気になったらチャレンジしてみるのもありだと思います。
なるほど!!
UIをOverLayにせず、それよりも前面に表示する用のカメラを別に作成するのですね!
自分でも再現出来、大変スッキリしました!誠にありがとうございます!