MRが楽しい

MRやVRについて学習したことを書き残す

MRTKv2.xを使ったプロジェクトがMetaXRSDKv67以降でエラーが発生する問題

本日はMRTKv2.xの調査枠です。
MRTKv2.xを使ったプロジェクトがMetaXRSDKv67以降でエラーが発生する問題についてです。

事象

MRTKv2.xをインストールしたプロジェクトでMetaXRSDKをv67にアップデートすると以下のエラーが発生します。

Library\PackageCache\com.microsoft.mixedreality.toolkit.foundation@f2323a9b7aec\Providers\Oculus\XRSDK\MRTK-Quest\Editor\OculusXRSDKHandtrackingConfigurationChecker.cs(122,76): error CS0117: 'OVRProjectConfig' does not contain a definition for 'GetProjectConfig'


原因

MetaXRSDKのv67からは以下のOVRProjectConfig.csに修正が入り、GetProjectConfig関数が利用できなくなったことが原因です。

Packages/MetaXRCoreSDK/Editor/OVRProjectConfig.cs

GetProjectConfig関数に代わり、CachedProjectConfigプロパティでOVRProjectConfigにアクセスできるように修正されています。

対処

エラーが発生しているOculusXRSDKHandtrackingConfigurationChecker.csファイルの該当コードを修正することでエラーを回避できます。

Packages/MixedRealityToolkitFoundation/Providers/Oculus/XRSDK/MRTK-Quest/Editor/OculusXRSDKHandtrackingConfigurationChecker.cs

・修正前

[MenuItem("Mixed Reality/Toolkit/Utilities/Oculus/Initialize Oculus Project Config")]
internal static void InitializeOculusProjectConfig()
{
#if OCULUSINTEGRATION_PRESENT
    // Updating the oculus project config to allow for handtracking and system keyboard usage
     OVRProjectConfig defaultOculusProjectConfig = OVRProjectConfig.GetProjectConfig();
    if (defaultOculusProjectConfig != null)
    {
        (略)

・修正後

[MenuItem("Mixed Reality/Toolkit/Utilities/Oculus/Initialize Oculus Project Config")]
internal static void InitializeOculusProjectConfig()
{
#if OCULUSINTEGRATION_PRESENT
    // Updating the oculus project config to allow for handtracking and system keyboard usage
    OVRProjectConfig defaultOculusProjectConfig = OVRProjectConfig.CachedProjectConfig; // 変更箇所
    if (defaultOculusProjectConfig != null)
    {
        (略)