追記 (2023-12-31)
Build Setting 内の Code Optimization
を Shorter Build Time
にすると ビルド時間を短くできます。
Code Optimization | 3D Sample Scene |
---|---|
Runtime Speed | 1365 (22分45秒) |
Shorter Build | 138 (2分18秒) |
↓ の内容は、Code Optimization
を Runtime Speed
に設定したときのビルド時間になります。
初めに
Unity2022 の LTS が出たということで、早速 Unity1Week 用にインストールしました。
Unity2021 で消えていた Recompile After Finished Playing
項目が復活するなど、使いやすくなっていたと思います。
しかし、WebGL でのビルド時間に違和感がありました。Unity2022.3.1f1 で作ったプロジェクトを WebGL ビルドすると、20分ほど掛かってしまったのです。
不思議に思ったので、Unity 2021 と比較してみました。(iOS や Android など、他プラットフォームビルド時間については検証していません。)
ビルド時間の比較
Unity2021.3.16f1
と Unity2022.3.1f1
でビルドしたものを比較しました。
ビルド後に表示されるログで、ビルド時間を見ます。
テンプレートプロジェクト
UnityHub に載っているサンプルプロジェクトを、Unity2021 と Unity2022 でそれぞれ作成し、ビルド時間 (秒) を測りました。
バージョン | 2DCore | 3DCore | 3D Sample Scene |
---|---|---|---|
Unity2021.3.16f1 | 230 (3分50秒) | 201 (3分21秒) | 497 (8分17秒) |
Unity2022.3.1f1 | 214 (3分34秒) | 173 (2分53秒) | 455 (7分35秒) |
テンプレートプロジェクトをビルドした際は、Unity2022.3.1f1
でビルドしたほうが早い結果になりました。
Unity2021 のテンプレートを Unity2022 で開く
次に、 Unity2021 用に作成したテンプレートプロジェクトを、Unity2022 にアップグレードして開き、ビルドしました。
バージョン | 2DCore | 3DCore | 3D Sample Scene |
---|---|---|---|
Unity2021.3.16f1 のまま | 230 (3分50秒) | 201 (3分21秒) | 497 (8分17秒) |
Unity2022.3.1f1 にアップグレード | 315 (5分15秒) | 255 (4分15秒) | 1365 (22分45秒) |
旧プロジェクトをバージョンアップしてビルドすると、ビルド時間が伸びています。
特に、3D Sample Scene テンプレートプロジェクト
のビルド時間が2倍以上になっています。
過去に作ったプロジェクトを Unity2022 で開く
次に、過去に作ったプロジェクトを、2つのバージョンでビルドしてみました。
Unity2022 にアップグレードさせたところ、ビルド時間が以下のようになりました。
バージョン | つなげて伝言ゲーム | Accumulate Jump Run | カゴ詰め検定 |
---|---|---|---|
Unity2021.3.16f1 のまま | 391 (6分31秒) | 418 (6分58秒) | 356 (5分56秒) |
Unity2022.3.1f1 にアップグレード | 1283 (21分23秒) | 1313 (21分53秒) | 1224 (20分24秒) |
(追記)Unity2022.3.4f1 にアップグレード | 1402 (23分22秒) |
Unity2022 にアップグレードすると、全て20分以上掛かるようになってしまいました。
因みに、それぞれ3回ほどビルドしてみましたが、ビルド時間はほとんど変わりませんでした。
Unity2022 で作ったプロジェクトを Unity2021 で開く
Unity2022 で 2D Core テンプレートプロジェクト
を作成し、そこにプログラムやアセットを少し加えたプロジェクトを、Unity 2021 で開いてビルドしました。
バージョン | ビルド時間 (秒) |
---|---|
Unity2021.3.16f1 にダウングレード | 277 (4分37秒) |
Unity2022.3.1f1 のまま | 1130 (18分50秒) |
やはり Unity 2022 ではビルド時間が20分近くかかります。
遅いところ
ビルドすると、ゲージの8割くらいまではすぐに達するのですが、その後の Linking build.js (wasm)
というメッセージが出ている個所で非常に時間がかかります。
フォーラムでも言われてました。(https://forum.unity.com/threads/webgl-build-linking-build-js-wasm-takes-forever.1315203/)
Unity2022.2.0f1 以上のバージョンだとこの現象が起こるようです。
原因
分かりません。
対策
Unity 2022.1 以下のバージョンにしましょう。 Unity2021 の LTS 版(Unity2021.3.○○ のもの) が無難でしょう。
Build Setting 内の Code Optimization
を Shorter Build Time
にしましょう。
まとめ
手を付けていないテンプレートプロジェクトを WebGL ビルドするだけなら、Unity2022 の方が早いですが、手を加えたプロジェクトをビルドするなら Unity2021 の方が早いです。
Unity のバージョンを 2021 から 2022 に上げて Unity1Week に参加しようとしている方は、一旦試しに WebGL ビルドをしてビルド時間を確かめておいた方が良いです。
(追記) Unity2022.3.4f1 でもまだ直っていませんでした
ビルド時間が遅いと感じたら、Build Setting 内の Code Optimization
の設定を確認してみましょう。