こんにちわ、Unityエンジニアのオオバです。

Unityはマルチプラットフォーム書き出しに対応しています。

などなど。

マルチプラットフォームに書き出し対応しているだけで、同時に複数のプラットフォームに書き出すことは出来ません。
下の図のように書き出したいプラットフォームを選択して、Switch Platformで環境を切り替える必要があります。

本開発に入る前に知っておくべきUnityのSwitch Platfom地獄の回避方法_32

「なんだ、簡単じゃん」

って、思うかもしれませんが、Switch Platormは状況によってはすごく時間がかかってしまう処理です。ヘタすると30分以上作業が出来ません。
何に時間がかかっているのかというと、圧縮テクスチャや音声ファイルの変換作業です。

例えば、UIで使用しているサイズ1024☓1024pxのpng画像のフォーマットをiOSではPVRTC、AndroidではETCにしてみます。

iOS時の設定

本開発に入る前に知っておくべきUnityのSwitch Platfom地獄の回避方法_43

Android時の設定

本開発に入る前に知っておくべきUnityのSwitch Platfom地獄の回避方法_46

この時どういう処理が走るかというと、Unityのビルド設定がiOSだった場合、png画像がPVRTCに変換処理が走ります。

本開発に入る前に知っておくべきUnityのSwitch Platfom地獄の回避方法_50

ここで、AndroidにSwitch Platformします。
すると、png画像がETCに変換処理が走ります。

本開発に入る前に知っておくべきUnityのSwitch Platfom地獄の回避方法_55

また、再度iOSにSwitch Platformします。
再度png画像がPVRTCに変換処理が走ってしまいます。

本開発に入る前に知っておくべきUnityのSwitch Platfom地獄の回避方法_59

要はUnity側が変換後のデータをキャッシュしていないため、Switch Platformする度に変換処理が走ってしまうのです。

また、クオリティ設定をBestにすると数倍の時間がかかることになります。(もちろん画像自体はとても綺麗になるので、よっぽどのことがない限りはBest以外を選択することはありません)

しかし、スマホアプリを開発している最中にiOSで書きだしたあと、Androidでもテストしたいということはよくあります。ただ書き出すためだけに30分待つのはアホらしい。ということで、それらを解決する方法を紹介します。

📝 目次

1.Fast Platform Switchを使う

本開発に入る前に知っておくべきUnityのSwitch Platfom地獄の回避方法_71

Fast Platform Switch | AssetStore

Asset Storeで公開されている有料アセット『Fast Platform』です。

Up to 15x faster platform switch.
No setup. One button. Instant cache. Boost your multiplatform productivity now!

※2016.12.9時点 : サイト閉鎖済み

これを使うと、15倍早くなるということを公式サイトで謳っています。

使ったことがありますが、確かに早くなります。
しかし15倍早くなるとはいえ、大量の画像が存在した場合は無力ですので根本解決ではありません。

2.Switch Platformする分だけプロジェクトを作る

一番お手軽で確実な方法がこちら(チームライセンスもいりません)。

Switch Platformする分だけプロジェクトを作っちゃえばよいのです。

workspace/Unity/hoge-ios  
workspace/Unity/hoge-android  

みたいなディレクトリ構成で、iOSとAndroidのプロジェクトを分けています。Unityを多重起動しておけば同時にビルドもできるので便利です。

Fast Platform Switchと比べたデメリットは、 切り替える数だけプロジェクトが必要なのでHDDを圧迫することです。容量に余裕のあるマシンなら全く問題にならないでしょう。

重要なのは、画像などがまだ少ないプロジェクト初期段階にSwitch Platformを予め実行しておくということです。

本開発に入ると一気にアセットが増えてしまいます。そうなる手前でプロジェクトを分けておくと幸せになれるかもしれません。

まとめ

断然オススメなのは、Switch Platformする分だけプロジェクトを作るですが、 そもそもUnity側にもっと頑張ってもらって、せめて数秒で切り替わるくらいまで時短してもらえるとなーっと期待せずに待っています。

👉 オススメ記事

2021秋 Asset Refreshセール
100以上のアセットがなんと50%OFF!!オオバもいくつか買いました!
期間 : 10月2日午後3時59分まで

👩‍💻 検証環境