Standard Assetという無料アセットが手に入るのですが、それの中のParticleSystem>Prefabに入っているExplosionという爆発を表現するプレファブがあります。FPSゲームを作ろうとしていて、撃たれたときのエフェクトに流用しようとしたのですが、そのプレファブを置いた状態でプレイするとなぜかユニティ自体がシャットダウンしてしまうという症状が出ていました。
バグレポートを送ってくれというウインドウが立ち上がったのでせっかくですから、Bug Reportを送ってみました。私の環境ではUnity2018.3.0f2を使用していまして、以前違うバージョンを使用していたこともあり、念のためアンインストールとファイルを削除して、再インストールをしてみました。
しかしやはり同じ症状が出る事から、これはUnityの問題ではなく、このPrefabの問題であると考え、このプレファブはいったい何の要素で構成されているのだろう?というところにやっと頭が回り始めました。
さらにプレファブにはスクリプトがつけられているようで、インスペクター上を確認するといくつかのコンポーネントがくっついている事が確認できました。
という事は、この中のどれかがエラーの原因になっている可能性が高いので、一つずつ検証していきました。スクリプトはチェックボックスを外しても結局エラーが出たのでスクリプトは白と判明。エラーが出るたびにUnityがシャットダウンしてしまうので立ち上げに時間がかかります。
次に、個々のParticleSystemを一つづつチェックしていきました。例えば上の写真のシャワーというのをクリックするとシャワーのアニメーションがシーンビュー上で動きます。
最初はどれをクリックしても大丈夫なのですが、何回か触っているとたまにシャットダウンしてしまいいます。シャットダウンした時に触ったParticleSystemを記録していった結果、Trail BlackとShockwaveの2つのParticleSystemを触るとシャットダウンする可能性が高いという傾向が判明しました。
そこで、その2つのParticleSystemをUnpackPrefabをした後、deleteし、もう一度プレファブ化しました。そしてプレイしたところ、きちんとプレイされました。
依然としてなぜParticleSystem にエラーが出る のかはわかりませんでしたが、エラーが出るものを抽出して取り除けたので、エフェクト自体は使えるようになりました。完全な原因究明はできませんでしたが、部分的に解決できたので、記録に残しておきます。