1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MRTK v2.2 + Scripting Backend .NETで嵌ったはなし

Last updated at Posted at 2020-01-22

この記事を必要とするひと

  • HoloLens/HoloLens2でMRTKv2.2を使いたい
  • ScriptingBackend .NETでデバッグをしたい

この記事を必要としないひと

  • IL2CPPのビルド時間に耐えられる
  • ScriptingBackend .NETでデバッグなんかしない
  • MRTKv2.1で十分である

開発環境

  • Unity 2018.4.15f
  • Visual Studio 2019
  • MRTKv2.2

経緯

MRTKv2.2でUnity上での開発を完了させ、実機(HoloLens2)にデプロイすべくBuildしたら詰んだ。

解決方法(簡潔に)

  • MRTKv2.2で追加されたMSBuildを使わない(ただし、別の制約あり)
  • MRTKv2.1でBuildしてからMRTKv2.2に差し替える(未確認)

NGな手順

新規プロジェクト作成
SwichPlatform(UWP)
Microsoft.MixedReality.Toolkit.Unity.Foundation.2.2.0.unitypackageインポート
MixedRealityToolkit > ConfigureUnityProject でMSBuildにチェックを入れる(デフォルト)
クリップボード-11.png
ScriptingBackendを.NETにする
クリップボード-9.png
Editor上でお豆腐を置く(ここまでは問題なし)
クリップボード-13.png
Build
クリップボード-15.png
突然の死。
クリップボード-14.png

Assets\MixedRealityToolkit.Providers\WindowsMixedReality\WindowsMixedRealityReprojectionUpdater.cs(61,35): error CS0012: The type 'Enum' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.

「.netStandard2のassembly参照が無いよ!」
んなわけあるかーーwwww

MSBuild > Regenelate C# SDK Projectしてみる

クリップボード-16.png

Dependencies.msb4u.csproj : error NU1101: �p�b�P�[�W MSBuildForUnity �����‚���܂���B�\�[�X Microsoft Visual Studio Offline Packages, nuget.org �ɂ́A���� ID �̃p�b�P�[�W�����݂��܂���B
UnityEngine.Debug:LogError(Object)

ちょっと何言ってるか分からないですね。。。

救いの手

解決策:MSBuild使わない

新規プロジェクト作成
SwichPlatform(UWP)
Microsoft.MixedReality.Toolkit.Unity.Foundation.2.2.0.unitypackageインポート
MixedRealityToolkit > ConfigureUnityProject で MSBuildのチェックを外す

クリップボード-1.png
ScriptingBackendを.NETにする
Editor上でお豆腐を置く(なんとなく青)
クリップボード-2.png
Build!
VisualStudioで開く→デバッグなしで開始
クリップボード-6.png
......。
Visual Studio 2017 Update3でC#7.1を使ってみた
アッ、ハイ!

気を取り直してVisualStudio 2019 で開く→デバッグなしで開始
20200122_132522_HoloLens.jpg

バーチャル豆腐きた!

考察

MSBuildは依存系DLLを集めてくれるらしい。
MSBuildを有効にすると下記のメッセージが表示される。

クリップボード-12.png

DLL探索パスにDotNetAdaptorのフォルダを追加したよ~

おそらく、ここにDLLが入る想定なのだが、何らかの理由で上手く入らないパターンがある。

制約

Microsoft Mixed Reality Toolkit Release Notes
曰く
クリップボード-5.png

MSBuildはNugetで自動的に依存を解決するよ
いくつかの機能はMSBuild必須だよ(例えばHoloLens2のhand aned eye remoting)

ぬぬ。

クリップボード-7.png

Holographic Remotingでハンドトラッキングとアイトラッキングをサポートしたよ!

ぐぬぬ。

ちなみに、NGパターンでもIL2CPPだと普通にビルドできます。
が、すごーーーーーーーーく待たされる。辛い。

MRTK supports both IL2CPP and .NET scripting backends on Unity 2018

MSさんなんとかしてよね!
あともっと建設的な解決策がありましたらどなたかご教授くださいm(_ _)m

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?