本日はMRTKのトラブルシューティング枠です。
昨日MRTKでLeapMotionを使用する際のエラーに関して紹介しました。
これはMRTKv2.73現在では LeapMotionUnityPlugin v5.x系をサポートしておらず。逆にLeapMotionの最新版のTrackingソフトウェアであるGeminiではLeapMotionUnityPlugin v5.x系がサポートされておりv4.x系は動かすことができません。
今回はこの問題を解消しMRTKv2.73で LeapMotionUnityPlugin v5.xを使用していきます。
〇問題の解消
Package/MixedRealityToolkit.faundation/Providers/LeapMotion/MRTK.LeapMotion.asmdefを開きます。

.asmdefファイルとはスクリプトのコンパイルおよびアセンブリ定義ファイルでC#パッケージのコンパイルに使用されます。
このファイルは名前の通りLeapMotionのUnityPluginとMRTKとのIntegrationを行った際に実行されるコンパイルを定義しています。
{
"name": "Microsoft.MixedReality.Toolkit.Providers.LeapMotion",
"references": [
"Microsoft.MixedReality.Toolkit",
"LeapMotion",
"LeapMotion.LeapCSharp"
],
"includePlatforms": [
"Editor",
"WindowsStandalone32",
"WindowsStandalone64"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}
ここでは"LeapMotion"、"LeapMotion.LeapCSharp"が定義されています。
LeapMotionは現在UltraLeapと名称を変えており、SDKではLeapMotionUnityPlugin v5.x系でこの名称変更が反映されています。
ここに"Ultraleap.Tracking.Core"を一行加えます。
{
"name": "Microsoft.MixedReality.Toolkit.Providers.LeapMotion",
"references": [
"Microsoft.MixedReality.Toolkit",
"LeapMotion",
"LeapMotion.LeapCSharp",
"Ultraleap.Tracking.Core"
],
"includePlatforms": [
"Editor",
"WindowsStandalone32",
"WindowsStandalone64"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}
これによってネームスペースエラーが解消され、正常にMRTKでLeapMotionが使用できるようになります。