Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@natsu_san

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

More than 1 year has passed since last update.

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

  • 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

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
natsu_san
都内ITエンジニア。最近VRにも挑戦中。HoloLens/Cluster/C#/WPF/Pythonなどを嗜みます。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?