【Unity】ビルド形式がWebAssembly(wasm)ではなくasm.jsになってしまった場合の対処方法
Unityでビルドしていたら、前まではWebAssembly(wasm)でビルドされていたのに、いつのまにかasm.jsビルドになっていた。
その時に、ビルドログに以下のような文言が出ていた。
PlayerSettings.WebGL.linkerTarget should be set to WebGLLinkerTarget.Wasm in your script.
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
PlayerSettings.WebGL.memorySize is set to 256 but it will not have any effect on WebAssembly builds.
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
wasmでビルドされるべきであるが、asm.jsビルドになっているよ的な文言だった。
“PlayerSettings"内の"Publishing Settings"のLinkerTargetの設定でWebAssemblyに設定できるということなので、探したが、
Unity2019.1からはLinkerTargetの項目自体がなくなっておりデフォルトでWebAssemblyになっていて、Unityの画面からは設定を変えれないらしい。。。
私はUnity2019.1以上だったので画面には出ていなかった。
wasmビルドからasm.jsビルドに変わってしまった原因は最後に書くとして、Unityの画面以外からLinkerTargetを変更する方法を記載する。
LinkerTargetの変え方
1."プロジェクトフォルダ/ProjectSettings"内のProjectSettings.assetファイルをメモ帳などで開く。
2.その中の"webGLLinkerTarget"という項目を見つける。
3."webGLLinkerTarget"の値が0だとasm.jsビルド、1だとWebAssembly(wasm)ビルドなので、1に変える。
4.これでビルドするとWebAssembly(wasm)ビルドになっているはず。
wasmビルドからasm.jsビルドに変わった原因
Unity2019.1以上はデフォルトでWebAssembly(wasm)ビルドであり、私も最初はWebAssembly(wasm)ビルドだったのだが、ある時からなぜかasm.jsビルドに変わっていた。
確かなことはわからないが、考えられることは、Asset StoreからImportしたAssetによって起きた可能性がある。
一部のAssetはImportするときに、以下のようなメッセージが出ることがある。
Importing a complete project will overwrite your current project settings. If you're not sure what this means, you should switch to an empty project before importing this package
project settingsが上書きされるという警告なので、そのままImportしていったら、もしかしたらビルド形式も上書きされることもあるのかも。
まあ、確実なことではないですが。。。
ディスカッション
コメント一覧
まだ、コメントがありません