Unity2019.4LTS + MRTK2.4メモ(Hand Menu / Near Menuが表示されない件追記)

Unity2019.4LTSもバージョンが上がって安定してきたのと、案件の都合上MRTK2.4をちゃんと使っていなかったので、この組み合わせで動かしてみました。案の定躓いた部分があったのでメモしておきます。

IL2CPPビルドのみサポート(.NET廃止)

Unity2019から、Scripting Backendが.NETでのビルドはできなくなりました。IL2CPP固定になります。

ARM64ビルドが必要

IL2CPPでプロジェクトを書き出して実機で動かしてみると、アプリ起動直後に実行時エラーが発生。
「UnityPlayer_UAP_arm_master_il2cpp.pdb は読み込まれていません」

意味が分かりにくいエラーですが、これはビルドターゲットを「ARM64」に指定すれば回避できます。UnityのBuild Settingsを変更する必要はなく、Visual Studio上で変更すれば問題ありません。

2020/8/30 追記 AMRでビルドする方法

Player Settings > Player > Graphics JobsをoffにするとARMでもビルドできると記載がありました。

使っている外部プラグインがARM64に対応していないなどでARMビルドが必要な場合はこの方法で可能ですね。

2020/8/30 追記 Hand Menuが表示されない不具合

Unity2019.4と、Visual Studio 2019 Ver.16.7以降(?)を使っている場合、ARM64ビルドだとHand Menuが実機で表示されないようです。

Describe the bug In the NearMenuExampleScene, there seems to be a race condition causing an issue only seen in Release mode ARM64 where the menus disappear from...

この場合、HandConstraintPalmUpやDirectionalIndicatorの「Smoothing」をoffにすればARM64でも表示されるそうなのですが、その名の通りスムーズさが失われてしまうので、上記設定でARMビルドにした方がいい場合もあります。ARMとARM64では使用できるメモリ量に違いがあるのでARM64が推奨されているのですが、現時点ではHand Menuのスムーズさを優先するとARMビルドという選択肢になりますね。

2020/10/21 追記 Near Menu等のRadial Viewが動作しない不具合

Near Menuなど、Radial Viewの挙動がおかしい場合があります。下記の動画はARM64でビルドしたNear Menu Examplesなのですが、ピン止めをはずすとメニューがどこかに消えてしまいます。

これも下記Issueで議論されていました。

Describe the bug In the NearMenuExampleScene, there seems to be a race condition causing an issue only seen in Release mode ARM64 where the menus disappear from...

結論としては、ARM64ビルドをやめてARMにするか、Visual Studioでのコンパイルオプションに「–compiler-flags=”-d2ssa-cfg-jt-“」を追加するか、のようです。

ARMビルドを行うには、前述のようにGraphics Jobsをoffにします。

ARM64で動かす場合のコンパイルオプションのつけ方です

ビルドして書き出したソリューションの中の、IL2CPPプロジェクトのプロパティを開きます。その中のNMakeの項目のテキストがコンパイルオプションになります。

この文字列に、「–compiler-flags=”-d2ssa-cfg-jt-“」を追加します。~il2cpp.exe”の後につけるのがわかりやすいでしょう。前後に半角スペースを入れて独立したコマンドラインオプションとなるようにしてください。

2Dウインドウになってしまう

ARM64で動作したのですが、今度はアプリがウインドウ表示になってしまい、イマーシブになりません。間違ってXAMLで書き出しちゃったかな?と思ってもちゃんとD3Dで書き出されています。

これは、XR SettingsのVitrual Reality SDKsにWindows Mixed Realityが設定されていないことが原因でした。
MRTK2.4のパッケージをインストール後に、設定のウィザードが出て「Enable Legacy XR」が含まれているので何もしなくていいのかと思ったのですが自動では設定されないようです。(どうやらXR Pluginとの絡みらしいです)

以上、備忘録でした。

2020/11/12 追記 LINKエラー

Unityから書き出したVisual Studioのプロジェクトを実行したら、下記のエラーが発生しました。

2>LINK : fatal error LNK1181: 入力ファイル ‘C:\Users\hiroki.tanaka\source\repos\○○(日本語のディレクトリ)\Unity_Learn02\App\build\bin\ARM\Release\GameAssembly.lib’ を開けません。

これは、日本語のディレクトリを含むパスに書き出したのが原因だったようです。書き出し場所を変更したら改善しました。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク