環境
Windows 10
Unity 2018.3.0f2
Androidバージョン 7.0
WebGLで公開したゲームをAndroidに移植したらparticleが表示されない
WebGLで公開したゲームをAndroidに移植したのだが、なぜかAndroid上で実行するとparticleが表示されない。WebGL上では表示されているし、UnityのGameビューでもparticleは問題なく表示されている。
particle再生時にエラーが出ていることに気付く
particleはscriptから再生しているが、particle再生時に以下のようなerrorが出ていることに気付いた。
Ensure Read/Write is enabled on the Particle System’s Texture.
原因を調べてみた
調べてみると、stack over flowに同じエラーに関する質問を発見。
https://stackoverflow.com/questions/51746766/unity-ensure-read-write-is-enabled
textureのRead/Write Enableをonにすればいいらしい。そういえば、particleのtextureってどうなってるんだっけ?設定した覚えがない。調べてみると、以下のように「Default-Particle」というtextureが設定されていた。
こいつの設定を変えればいいんだな!と思ったけど、プロジェクト内を検索しても、default-particleというTextureが見つからない。さらにググってみると、Unityのforumに以下のような内容を発見。こっちはMaterialの話なので混同していいのかよくわからないが、default-partileはUnityにもともと入っているもので、アクセスできないようだ。
https://forum.unity.com/threads/default-particle-is-what.18169/
textureを設定しなければエラーは消えてAndroidでもparticleが表示されるようになった
しょうがないのでtextureを自前のものに変更して、そのtextureのRead/Write Enableをonにするか……と思ったけど、そもそもTextureって設定しないと動かないのかな?とふと思う。試しに、textureをNoneにしてみる。
この状態でも、particleは問題なく再生されているように見える。これでビルドしてAndroidで動かした結果、正常にparticleが表示されるようになった。とりあえずはこれで様子を見て、問題があるようなら自前のparticleを設定して、Read/Write Enableをonにしてみよう。
Unityゲーム作成プロセス公開中
Unityのインストールから公開まで、野球盤を題材にしたゲームの公開プロセスを公開してます。興味があればぜひ。