以前のバージョンからの更新

現在のバージョンの検索

現在使用している MRTK のバージョンを確認するには、次の手順に従います。

  1. Unity で MRTK プロジェクトを開く
  2. 次のウィンドウで [MixedRealityToolkit] フォルダーにProjectします
  3. "Version" という名前のファイルを開きます

上記のファイルとフォルダーが存在しない場合は、新しいバージョンの MRTK を使用しています。 その場合は、次の手順を試してください。

  1. "Mixed Reality Toolkit Foundation" フォルダーに移動します
  2. [プレビュー] をpackage.jsUnity でプレビューを表示するか、テキスト エディターで開きます
  3. "version:" という単語の行を探します。

MRTK の新しいバージョンへのアップグレード

MRTK 更新プログラムを 取得した後に移行ツールを実行して、非推奨のコンポーネントを自動修正してアップグレードし、変更の破損に合わせて調整を行う方法を強く推奨します。 移行ツールは、ツール パッケージの一 です。

以下の手順では、2.4.0 から 2.5.0 へのアップグレード パスについて説明します。 プロジェクトが 2.3.0 以前の場合は、バージョン間の変更点を読んでアップグレード パスを理解するか、以前のリリースの手順を読んでバージョン別アップグレードを実行してください。

Mixed Reality Feature Tool

MRTK を新しいバージョンの MRTK にアップグレードする最も簡単な方法は 、Mixed Reality Feature Tool を使用して最新のパッケージをダウンロードし、それらを Unity プロジェクトに直接読み込む方法です。

プロジェクトで以前に Unity アセット (.unitypackage) ファイルが使用されている場合は、次の手順 を参照してください

Unity アセット (.unitypackage) ファイル

もう 1 つのアップグレード パスは、MRTK Unity パッケージを手動でダウンロードし、プロジェクトに適用することです。 以下の手順を参照してください。

  1. アップグレード手順の任意の時点でスナグにヒットした場合に備え、現在のプロジェクトのコピーを保存します。
  2. Unity を閉じる
  3. Assets フォルダー で、次の MRTK フォルダーとその .meta ファイルを削除します (プロジェクトに一覧表示されているフォルダーが一覧に表示されない場合があります)。
    • MRTK/Core
    • MRTK/例
    • MRTK/拡張機能
    • MRTK/プロバイダー
    • MRTK/SDK
    • MRTK/サービス
    • MRTK/StandardAssets

    重要

    MRTK シェーダーに変更が加えられた場合は、MRTK/StandardAssets フォルダーを削除する前にローカル バックアップを作成します

    • MRTK/Tools

    重要

    MixedRealityToolkit.Generated フォルダー 、または .meta ファイルは削除しない。

  4. ライブラリ フォルダー を削除 する

    重要

    Unity Collab のような一部の Unity ツールでは、構成情報を Library フォルダーに保存します。 これを行うツールを使用する場合は、削除する前にツールのデータ フォルダーをライブラリからコピーしてから、ライブラリが再生成された後に復元します。

  5. Unity でプロジェクトを再び開く
  6. 新しい Unity パッケージをインポートする
    • Foundation - 最初にこのパッケージをインポートする
    • ツール
    • (省略可能)拡張 機能

    注意

    追加の拡張機能がインストールされている場合は、再インポートが必要になる場合があります。

    • (省略可能)例
  7. Unity を閉じ 、Library フォルダーを削除 します (最初に以下のメモを読んでください)。 この手順は、Unity が資産データベースを強制的に更新し、既存のカスタム プロファイルを調整するために必要です。
  8. Unity を起動し、プロジェクト内の各シーンに対して
    • 階層 から MixedRealityToolkitMixedRealityPlayspace(存在する場合) を削除します。 これによりメイン カメラが削除されますが、次の手順で再作成されます。 メイン カメラのプロパティが手動で変更されている場合は、新しいカメラが作成された後に手動で再適用する必要があります。
    • MixedRealityToolkit の選択 ->シーンに追加して構成する
    • MixedRealityToolkit -> Utilities -> Update -> Controller Mapping Profiles を選択します (1 回のみ実行する必要があります) - これにより、カスタム割り当て入力アクションはそのままにしながら、カスタム コントローラー マッピング プロファイルが更新された軸とデータで更新されます
  9. 移行ツールを実行し、Full Projectでツールを実行して、すべてのコードが最新のバージョンに更新されます。 移行ウィンドウにはさまざまな移行ハンドラーが含まれているので、それぞれ独自に実行する必要があります。 この手順では、次の手順を実行します。
    • [移行ハンドラーの選択] ドロップダウンから最初 の移行ハンドラーを選択 します。
    • [Full Project] ボタンをクリックします。
    • [移行用の完全なプロジェクトの追加] ボタンをクリックします (これにより、移行するオブジェクトのプロジェクト全体がスキャンされます)。
    • 移行可能なオブジェクトが見つかった場合に有効にする必要がある [移行] ボタンをクリックします。
    • ドロップダウン内の各移行ハンドラーについて、前の 3 つの手順を繰り返します。 (今後 のリリースで この移行プロセスを簡略化するために実行できる作業については、この問題を参照してください)

Unity アセット ファイルから Mixed Reality Feature Tool への切り替え

Unity アセット ファイルから Feature Tool Mixed Realityに切り替えるには、次の多くの利点があります。

  • 簡単な更新
  • コンパイル時間の短縮
  • ソリューション内のプロジェクトVisual Studio少ない

機能ツールを使用Mixed Realityに変更するには、1 回の手動ステップ セットが必要です。

  1. 現在のプロジェクトのコピーを保存します。
  2. Unity を閉じる
  3. Assets フォルダー で、次の MRTK フォルダーとその .meta ファイルを削除します (プロジェクトに一覧表示されているフォルダーが一覧に表示されない場合があります)。
    • MRTK/Core
    • MRTK/例
    • MRTK/拡張機能
    • MRTK/プロバイダー
    • MRTK/SDK
    • MRTK/サービス
    • MRTK/StandardAssets

    重要

    MRTK シェーダーに変更が加えられた場合は、MRTK/StandardAssets フォルダーを削除する前にローカル バックアップを作成します

    • MRTK/Tools

    重要

    MixedRealityToolkit.Generated フォルダー 、または .meta ファイルは削除しない。

  4. ライブラリ フォルダー を削除 する

    重要

    Unity Collab のような一部の Unity ツールでは、構成情報を Library フォルダーに保存します。 これを行うツールを使用する場合は、削除する前にツールのデータ フォルダーをライブラリからコピーしてから、ライブラリが再生成された後に復元します。

  5. Unity でプロジェクトを再び開く

前の手順を実行したら、Mixed Reality Feature Toolを実行し、目的のバージョンのアプリケーションをインポートMixed Reality Toolkit。

2.3.0 から 2.4.0 への更新

フォルダー名の変更 API の変更

2.4.0 でのフォルダー名の変更

MixedRealityToolkit フォルダーの名前が変更され、バージョン 2.4 の共通階層に移動されました。 アプリケーションで MRTK リソースへのハード コードされたパスを使用する場合は、次の表に従って更新する必要があります。

前のフォルダー [新しいフォルダー]
MixedRealityToolkit MRTK/コア
MixedRealityToolkit MRTK/例
MixedRealityToolkit MRTK/Extensions
MixedRealityToolkit MRTK/プロバイダー
MixedRealityToolkit MRTK/SDK
MixedRealityToolkit MRTK/サービス
MixedRealityToolkit MRTK/テスト
MixedRealityToolkit MRTK/ツール

重要

には、 MixedRealityToolkit.Generated 顧客が生成したファイルが含まれ、変更はありません。

2.4.0 での目を見つめたセットアップ

このバージョンの MRTK では、視線セットアップに必要な手順が変更されています。 [' IsEyeTrackingEnabled ' ] チェックボックスは、入力ポインタープロファイルの [の設定] にあります。 このチェックボックスをオンにすると、既定のヘッドベースの宝石ではなく、視線を使用できるようになります。

これらの変更の詳細と、視線追跡のセットアップの詳しい手順については、 目の追跡 に関する記事を参照してください。

2.4.0 での視線ポインターの動作

最初のポインターの既定ポインター動作は、頭を見つめた既定のポインターの動作と一致するように変更されています。 手作業が検出されると、視線ポインターは自動的に抑制されます。 "Select" と言うと、視線ポインターが再び表示されるようになります。

見つめと手動の設定の詳細については、「」 を参照し てください。

2.4.0 での API の変更

カスタムコントローラークラス

カスタムコントローラークラスでは、以前にを定義する必要がありました SetupDefaultInteractions(Handedness) 。 このメソッドは、ききパラメーターがコントローラークラスのきき手と重複しているため、2.4 で廃止されました。 新しいメソッドにはパラメーターがありません。 さらに、多くのコントローラークラスで同じ方法 () が定義されている AssignControllerMappings(DefaultInteractions); ため、完全な呼び出しがにリファクタリングされ、省略可能なオーバーライドが必要ではなくなりました BaseController

視線プロパティ

UseEyeTracking GazeProvider の実装からのプロパティの IMixedRealityEyeGazeProvider 名前がに変更されました IsEyeTrackingEnabled

以前に作成したのは...

if (CoreServices.InputSystem.GazeProvider is GazeProvider gazeProvider)
{
    gazeProvider.UseEyeTracking = true;
}

今すぐ実行...

if (CoreServices.InputSystem.GazeProvider is GazeProvider gazeProvider)
{
    gazeProvider.IsEyeTrackingEnabled = true;
}

WindowsApiChecker のプロパティ

次の WindowsApiChecker プロパティは、不使用とマークされています。 IsMethodAvailable、、またはを使用してください IsPropertyAvailable IsTypeAvailable

  • UniversalApiContractV8_IsAvailable
  • UniversalApiContractV7_IsAvailable
  • UniversalApiContractV6_IsAvailable
  • UniversalApiContractV5_IsAvailable
  • UniversalApiContractV4_IsAvailable
  • UniversalApiContractV3_IsAvailable

将来の API コントラクトバージョンでは、WindowsApiChecker にプロパティを追加する予定はありません。

GltfMeshPrimitiveAttributes 読み取り専用

設定可能にするために使用される gltf メッシュプリミティブ属性は、読み取り専用になりました。 これらの値は、逆シリアル化時に1回設定されます。

カスタムボタンアイコンの移行

以前のカスタムボタンアイコンでは、ボタンのクワッドレンダラーに新しい素材を割り当てる必要があります。 これは不要になったため、カスタムアイコンテクスチャを IconSet に移動することをお勧めします。 既存のカスタム素材とアイコンが保持されます。 ただし、アップグレードするまでは最適ではありません。 プロジェクトのすべてのボタンのアセットを新しい推奨形式にアップグレードするには、ButtonConfigHelperMigrationHandler を使用します。 (Mixed Reality Toolkit-> ユーティリティ-> 移行ウィンドウ-> 移行ハンドラの選択-> MixedReality。Toolkit。ButtonConfigHelperMigrationHandler)

アップグレードウィンドウのダイアログ

移行中に既定のアイコンセットにアイコンが見つからない場合は、MixedRealityToolkit/CustomIconSets にカスタムアイコンセットが作成されます。 これが行われたことを示すダイアログが表示されます。

カスタムアイコンの通知

2.2.0 を2.3.0 に更新しています

2.3.0 での API の変更

ControllerPoseSynchronizer

プライベート ControllerPoseSynchronizer フィールドは、不使用とマークされています。 このフィールドはクラスの外部では参照できないため、アプリケーションへの影響は最小限に抑えられます。

パブリック ControllerPoseSynchronizer プロパティの setter が削除されました (#7012)。

Unity の MSBuild

このバージョンの mrtk では、以前のリリースよりも新しいバージョンの MSBuild を Unity に使用しています。 プロジェクトの読み込み中に、unity パッケージマネージャーマニフェストに古いバージョンが一覧表示されている場合は、[unity の MSBuild を有効にする] チェックボックスがオンになっている状態で、構成ダイアログが表示されます。 を適用すると、アップグレードが実行されます。

ScriptingUtilities

ScriptingUtilities クラスは互換性のために残されていますが、MixedReality では ScriptUtilities に置き換えられています。Toolkit。Editor. Utilities アセンブリ。 新しいクラスは以前の動作を詳細にし、スクリプト定義を削除するためのサポートを追加します。

既存のコードは引き続きバージョン2.3.0 で機能しますが、新しいクラスに更新することをお勧めします。

ShellHandRayPointer

ShellHandRayPointer クラスの lineRendererSelected および lineRendererNoTarget メンバーは、それぞれ lineMaterialSelected と lineMaterialNoTarget に置き換えられています (#6863)。

コンパイルエラーを解決するには、lineRendererSelected または lineRendererNoTarget を lineMaterialNoTarget に置き換えてください。

空間オブザーバーの StartupBehavior

クラスに基づいて構築された空間オブザーバーは BaseSpatialObserver 、再有効化 (#6919) 時に startupbehavior の値を使用できるようになりました。

この修正プログラムを利用するための変更は必要ありません。

PressableButton を使用するように UX コントロール prefabs が更新されました

次の prefabs では、TouchHandler の代わりに PressableButton コンポーネントを使用して、ほぼすべての対話を行うことができるようになりました (7070)。

  • [アニメーション] ボタン
  • Button
  • ButtonHoloLens1
  • ButtonHoloLens1Toggle
  • CheckBox
  • 放射 Alset
  • ToggleButton
  • ToggleSwitch
  • UnityUIButton
  • UnityUICheckboxButton
  • Unityuiの Albutton
  • UnityUIToggleButton

この変更により、アプリケーションコードの更新が必要になる場合があります。

WindowsMixedRealityUtilities 名前空間

WindowsMixedRealityUtilities の名前空間が Microsoft.MixedReality から変更されました。Toolkit。Microsoft.MixedReality への WindowsMixedReality.Input。Toolkit。WindowsMixedReality(#6863 )。

コンパイル エラーを#usingステートメントを更新してください。

2.1.0 から 2.2.0 への更新

2.2.0 での API の変更

IMixedRealityBoundarySystem.Contains

このメソッドは、以前に Unity で定義された特定の試験的な列挙型を取り込みしました。 これで、Unity 列挙型と同じ MRTK 定義の列挙型が取り込みされます。 この変更は、Unity の将来の境界 API 用に MRTK を準備するのに役立ちます。

MixedRealityServiceProfileAttribute

プロファイルをサポートするための要件をよりよく説明するために、MixedRealityServiceProfileAttribute が更新され、除外された型の省略可能なコレクションが追加されました。 この変更の一環として、ServiceType プロパティが Type から Type[] に変更され、RequiredTypes に名前が変更されました。

2 つ目のプロパティ ExcludedTypes も追加されました。

2.0.0 から 2.1.0 への更新

2.1.0 での API の変更

BaseNearInteractionTouchable

メソッド BaseNearInteractionTouchable を仮想としてマークするために、 OnValidate が変更されています。 (例: ) を拡張 BaseNearInteractionTouchable NearInteractionTouchableUnityUI するクラスは、この変更を反映するように更新されました。

ColliderNearInteractionTouchable

ColliderNearInteractionTouchable クラスの使用は非推奨とされました。 を使用するには、コード参照を更新してください BaseNearInteractionTouchable

IMixedRealityMouseDeviceManager

追加

IMixedRealityMouseDeviceManager と プロパティが CursorSpeed 追加 WheelSpeed されました。 これらのプロパティを使用すると、アプリケーションは、カーソルとホイールの速度をそれぞれ拡大縮小する乗数の値を指定できます。

これは、壊れる変更であり、既存のマウス デバイス マネージャーの実装を変更する必要があります。

注意

この変更は、バージョン 2.0.0 との下位互換性がありません。

廃止

プロパティ MouseInputProfile は古いとしてマークされ、今後のバージョンの Microsoft Mixed Reality Toolkit から削除される予定です。 アプリケーション コードでは、このプロパティを使用しなくなった方が推奨されます。

対話可能

次のメソッドとプロパティは非推奨とされており、今後のバージョンの Microsoft Mixed Reality Toolkit。 推奨されるのは、Obsolete 属性に含まれるガイダンスに従ってアプリケーション コードを更新し、コンソールに表示する方法です。

  • public bool Enabled
  • public bool FocusEnabled
  • public void ForceUpdateThemes()
  • public bool IsDisabled
  • public bool IsToggleButton
  • public int GetDimensionIndex()
  • public State[] GetStates()
  • public bool RequiresFocus
  • public void ResetBaseStates()
  • public virtual void SetCollision(bool collision)
  • public virtual void SetCustom(bool custom)
  • public void SetDimensionIndex(int index)
  • public virtual void SetDisabled(bool disabled)
  • public virtual void SetFocus(bool focus)
  • public virtual void SetGesture(bool gesture)
  • public virtual void SetGestureMax(bool gesture)
  • public virtual void SetGrab(bool grab)
  • public virtual void SetInteractive(bool interactive)
  • public virtual void SetObservation(bool observation)
  • public virtual void SetObservationTargeted(bool targeted)
  • public virtual void SetPhysicalTouch(bool touch)
  • public virtual void SetPress(bool press)
  • public virtual void SetTargeted(bool targeted)
  • public virtual void SetToggled(bool toggled)
  • public virtual void SetVisited(bool visited)
  • public virtual void SetVoiceCommand(bool voice)

NearInteractionTouchableSurface

クラス NearInteractionTouchableSurface が追加され、 と の基本クラスとして機能 NearInteractionTouchable します NearInteractionTouchableUnityUI

2.1.0 でのプロファイルの変更

手の追跡プロファイル

ハンド メッシュと関節の視覚化には、エディターとプレーヤーの設定が個別に追加されています。 これらの視覚エフェクトを に設定するために、手の追跡プロファイルが更新されました。Nothing、Everything、Editor、または Player。

手の視覚化モード

カスタムハンドトラッキング プロファイルは、バージョン 2.1.0 で正しく動作するように更新する必要がある場合があります。

注意

この変更は、バージョン 2.0.0 との下位互換性がありません。

入力シミュレーション プロファイル

入力シミュレーション システムがアップグレードされました。これは、入力シミュレーション プロファイルのいくつかの設定を変更します。 一部の変更は自動的に移行できないので、ユーザーはプロファイルが既定値を使用している可能性があります。

  1. プロファイル内のすべての KeyCode とマウス ボタンのバインドは、バインドの種類 (キーまたはマウス) と実際のバインド コード (KeyCode またはマウス ボタン番号) を格納する汎用構造体に置き換えました KeyBinding 。 構造体には独自のインスペクターがあります。これにより、統合された表示が可能で、大きなドロップダウン リストから選択するのではなく、それぞれのキーを押すことでキー バインドをすばやく設定する "自動バインド" ツールが提供されます。

    • FastControlKey
    • ToggleLeftHandKey
    • ToggleRightHandKey
    • LeftHandManipulationKey
    • RightHandManipulationKey
  2. MouseLookToggle は以前は として列挙 MouseLookButton 型に含まれていました InputSimulationMouseButton.Focused が、現在は別のオプションです。 有効にすると、カメラは、エスケープ キーが押されるまで、ボタンを離した後もマウスで回転し続ける。

  3. HandDepthMultiplier 入力シミュレーションの一部の変更に対応するために、既定値が 0.1 から 0.03 に下げらされました。 スクロール時にカメラの動きが速すぎる場合は、この値を下げしてみてください。

  4. 手を回転するためのキーが削除され、手の回転もマウスによって制御されます。 HandRotateButton(Ctrl) を左/右手操作キー (LShift/Space) と共に押すと、手の回転が有効になります。

  5. 入力軸の一覧に新しい軸 "UpDown" が導入されました。 これにより、カメラの垂直方向の移動が制御され、既定では Q/E キーとコントローラー トリガー ボタンが使用されます。

これらの変更の詳細については、入力シミュレーション サービスに関 する記事を参照 してください。

マウス データ プロバイダー プロファイル

マウス データ プロバイダー プロファイルが更新され、新しい プロパティと プロパティが CursorSpeed 公開 WheelSpeed されました。 既存のカスタム プロファイルには、既定値が自動的に指定されます。 プロファイルを保存すると、これらの新しい値が保持されます。

コントローラー マッピング プロファイル

一部の軸と入力の種類は、特に OpenVR プラットフォームを中心に、2.1.0 で更新されました。 アップグレード時に必ず MixedRealityToolkit -> Utilities -> Update -> Controller Mapping Profiles を選択してください。 これにより、カスタム割り当て入力アクションはそのままにしながら、更新された軸とデータでカスタム コントローラー マッピング プロファイルが更新されます。

RC2 を 2.0.0 に更新

Microsoft Mixed Reality Toolkit の RC2 リリースから 2.0.0 リリースの間に、既存のプロジェクトに影響を与える可能性がある変更が行われた。 このドキュメントでは、これらの変更と、プロジェクトを 2.0.0 リリースに更新する方法について説明します。

2.0.0 での API の変更

RC2 のリリース以降、既存のプロジェクトを壊す可能性がある API も含め、多くの API 変更が行まれています。 次のセクションでは、RC2 リリースと 2.0.0 リリースの間で発生した変更について説明します。

MixedRealityToolkit

MixedRealityToolkit オブジェクトの次のパブリック プロパティは非推奨とされました。

  • RegisteredMixedRealityServices には、登録済みの拡張機能サービスとデータ プロバイダーのコレクションが含まれる必要がなくなりました。

拡張機能サービスにアクセスするには、 を使用します MixedRealityServiceRegistry.TryGetService<T> 。 データ プロバイダーにアクセスするには、サービス インスタンスを にキャストし、 IMixedRealityDataProviderAccess を使用します GetDataProvider<T>

MixedRealityServiceRegistryCoreServices 非推奨のプロパティには、 または を代わりに使用します

  • ActiveSystems
  • InputSystem
  • BoundarySystem
  • CameraSystem
  • SpatialAwarenessSystem
  • TeleportSystem
  • DiagnosticsSystem
  • SceneSystem

CoreServices

クラス CoreServices は、 オブジェクトで見つかった静的システム アクセサー (例: BoundarySystem) の代わり MixedRealityToolkit です。

重要

システム MixedRealityToolkit アクセサーはバージョン 2.0.0 では非推奨とされており、MRTK の今後のリリースでは削除される予定です。

次のコード例は、古いパターンと新しいパターンを示しています。

// Old
GameObject playAreaVisualization = MixedRealityToolkit.BoundarySystem?.GetPlayAreaVisualization();

// New
GameObject playAreaVisualization = CoreServices.BoundarySystem?.GetPlayAreaVisualization();

新しい CoreSystem クラスを使用すると、別のサービス レジストラー (例: 試験的なサービス マネージャーの 1 つ) を使用するアプリケーションを変更した場合に、アプリケーション コードを更新する必要が生じなくなされます。

IMixedRealityRaycastProvider

IMixedRealityRaycastProvider が追加されたので、入力システム構成プロファイルが変更されました。 カスタム プロファイルがある場合は、アプリケーションの実行時に次の図でエラーが発生する可能性があります。

Raycast プロバイダーの選択 1

これらを修正するには、入力システム プロファイルに IMixedRealityRaycastProvider インスタンスを追加してください。

Raycast プロバイダーの選択 2

イベント システム

  • IMixedRealityEventSystem い API メソッド Register と は Unregister 古いとしてマークされています。 これらは下位互換性のために保持されます。
  • InputSystemGlobalListener は古いとしてマークされています。 その機能は変更されません。
  • BaseInputHandler 基本クラスが から に変更 InputSystemGlobalListener されました InputSystemGlobalHandlerListener 。 これは、 の子孫に対する大きな変更です BaseInputHandler

変更の背後にある動機

古いイベント システム API であり、実行時に複数の問題が発生する可能性があります。主な Register Unregister 原因は次の場合です。

  • コンポーネントがグローバル イベントに登録すると、すべての型のグローバル入力イベントを 受け取 る可能性があります。
  • オブジェクトのコンポーネントの 1 つがグローバル入力イベントに登録されている場合、このオブジェクトのすべてのコンポーネントは、すべての型のグローバル入力イベントを 受信 します。
  • 同じオブジェクト上の 2 つのコンポーネントがグローバル イベントに登録され、1 つが実行時に無効になっている場合、2 つ目のコンポーネントはグローバル イベントの受信を停止します。

新しい API RegisterHandlerUnregisterHandler :

  • グローバルにリッスンする必要がある入力イベントとフォーカスベースの入力イベントを明示的に詳細に制御できます。
  • 同じオブジェクト上の複数のコンポーネントが、互いに独立してグローバル イベントをリッスンできます。

移行方法

  • 以前に API を直接呼び Register / Unregister 出した場合は、これらの呼び出しを への呼び出しに置き換える RegisterHandler / UnregisterHandler 必要があります。 ジェネリック パラメーターとして実装するハンドラー インターフェイスを使用します。 複数のインターフェイスを実装し、そのいくつかがグローバル入力イベントをリッスンする場合は、 を複数回呼び RegisterHandler 出します。
  • から継承している場合は、継承 InputSystemGlobalListener を に変更します InputSystemGlobalHandlerListener 。 メソッド RegisterHandlersUnregisterHandlers 実装し、抽象化します。 実装呼び出し ( ) で、グローバル イベントをリッスンするハンドラー インターフェイスに inputSystem.RegisterHandler inputSystem.UnregisterHandler 登録します。
  • から継承している場合は、 メソッドと抽象 BaseInputHandler RegisterHandlers メソッド UnregisterHandlers を実装します (の場合と同じです InputSystemGlobalListener )。

移行の例

// Old
class SampleHandler : MonoBehaviour, IMixedRealitySourceStateHandler, IMixedRealityHandJointHandler
{
    private void OnEnable()
    {
        InputSystem?.Register(gameObject);
    }

    private void OnDisable()
    {
        InputSystem?.Unregister(gameObject);
    }
}

// Migrated
class SampleHandler : MonoBehaviour, IMixedRealitySourceStateHandler, IMixedRealityHandJointHandler
{
    private void OnEnable()
    {
        InputSystem?.RegisterHandler<IMixedRealitySourceStateHandler>(this);
        InputSystem?.RegisterHandler<IMixedRealityHandJointHandler>(this);
    }

    private void OnDisable()
    {
        InputSystem?.UnregisterHandler<IMixedRealitySourceStateHandler>(this);
        InputSystem?.UnregisterHandler<IMixedRealityHandJointHandler>(this);
    }
}
// Old
class SampleHandler2 : InputSystemGlobalListener, IMixedRealitySpeechHandler
{
}

// Migrated
class SampleHandler2 : InputSystemGlobalHandlerListener, IMixedRealitySpeechHandler
{
    private void RegisterHandlers()
    {
        InputSystem?.RegisterHandler<IMixedRealitySpeechHandler>(this);
    }

    private void UnregisterHandlers()
    {
        InputSystem?.UnregisterHandler<IMixedRealitySpeechHandler>(this);
    }
}

// Alternative migration
class SampleHandler2 : MonoBehaviour, IMixedRealitySpeechHandler
{
    private void OnEnable()
    {
        IMixedRealityInputSystem inputSystem;
        if (MixedRealityServiceRegistry.TryGetService<IMixedRealityInputSystem>(out inputSystem))
        {
            inputSystem?.RegisterHandler<IMixedRealitySpeechHandler>(this);
        }
    }

    private void OnDisable()
    {
        IMixedRealityInputSystem inputSystem;
        if (MixedRealityServiceRegistry.TryGetService<IMixedRealityInputSystem>(out inputSystem))
        {
            inputSystem?.UnregisterHandler<IMixedRealitySpeechHandler>(this);
        }
    }
}

空間認識

IMixedRealitySpatialAwarenessSystem インターフェイスと IMixedRealitySpatialAwarenessObserver インターフェイスでは、以下で説明するように、複数の互換性に影響する変更が加えらされました。

[変更点]

次のメソッドの名前が変更され、使用方法をよりよく説明しています。

  • IMixedRealitySpatialAwarenessSystem.CreateSpatialObjectParent の使用を明確にするために IMixedRealitySpatialAwarenessSystem.CreateSpatialAwarenessObservationParent 、 の名前が に変更されました。

追加

お客様からのフィードバックに基づいて、以前に観察された空間認識データを簡単に削除するサポートが追加されました。

  • IMixedRealitySpatialAwarenessSystem.ClearObservations()
  • IMixedRealitySpatialAwarenessSystem.ClearObservations<T>(string name)
  • IMixedRealitySpatialAwarenessObserver.ClearObservations()

ソルバー

さまざまなバグを修正し、より直感的に使用するために、一部のソルバー コンポーネントと SolverHandler マネージャー クラスが変更されました。

SolverHandler

  • クラスが から拡張されなくなりました ControllerFinder
  • TrackedObjectToReference public プロパティは非推奨とされ、名前が に変更されました TrackedTargetType
  • TrackedObjectType は、右側のコントローラー&の左側の値を非推奨とします。 代わりに、 または MotionControllerHandJoint を使用し、新しいプロパティを更新 TrackedHandedness して、追跡を左右のコントローラーに制限します

InBetween

  • TrackedObjectForSecondTransform public プロパティは非推奨とされ、名前が に変更されました SecondTrackedObjectType
  • AttachSecondTransformToNewTrackedObject() は削除されました。 ソルバーを更新するには、パブリック プロパティを変更します (つまり、 SecondTrackedObjectType)

SurfaceMagnetism

  • MaxDistance public プロパティは非推奨とされ、名前が に変更されました MaxRaycastDistance
  • CloseDistance public プロパティは非推奨とされ、名前が に変更されました ClosestDistance
  • の既定値 RaycastDirectionMode は、 TrackedTargetForward 追跡対象の変換の方向にレイキャストされる現在の値です。
  • OrientationMode 列挙値 と Vertical Full は、それぞれ と に TrackedTarget SurfaceNormal 名前が変更されました。
  • KeepOrientationVertical public プロパティが追加され、関連付けられている GameObject の向きが垂直方向に維持されるかどうかを制御しました

ボタン

  • PressableButton では、 DistanceSpaceMode プロパティが既定値として Local に設定されています。 これにより、ボタンを押しながら拡大縮小できます

クリッピング球

ClippingSphere インターフェイスは、ClippingBox と ClippingPlane で見つかった API をミラー化するために変更されました。

ClippingSphere の Radius プロパティは、変換スケールに基づいて暗黙的に計算されます。 開発者は、インスペクターで ClippingSphere の半径を指定する必要があります。 半径を変更する場合は、通常と同じ方法で変換の変換スケールを更新します。

NearInteractionTouchable とPointer

  • NearInteractionTouchable では、Unity UI キャンバスのタッチが処理されなくなりました。 Unity UI タッチアブルには NearInteractionTouchableUnityUI クラスを使用する必要があります。
  • ColliderNearInteractionTouchable は、コライダーに基づくタッチ可能な (NearInteractionTouchableUnityUI を除くすべてのタッチ可能) の新しい基本クラスです。
  • BaseNearInteractionTouchable.DistFront が移動され、その名前が「TouchePointer.TouchableDistance」に変更されました。これは距離であり、TouchePointer がタッチ可能なオブジェクトと対話できる距離です。 以前は、タッチ可能な各タッチ可能なには独自の最大相互作用距離が含まれていますが、これでは、より優れた最適化を可能にする、より優れた相互作用距離が、1 つの"Pointer" で定義されています。
  • BaseNearInteractionTouchable.DistBack の名前が"1000000000000001" に変更されました。これにより、"The"、"100000000000000" に対応する"10000000000000000000000000000000"#B100000000000000000000000011 Touchable は、1 つの ToucheThreshold が交差するとアクティブ化され、DebounceThreshold が交差すると解放されます。

ReadOnlyAttribute

名前空間 Microsoft.MixedReality.Toolkit が 、、および ReadOnlyAttributeBeginReadOnlyGroupAttribute 追加されました EndReadOnlyGroupAttribute

PointerClickHandler

PointerClickHandler クラスの使用は非推奨とされました。 代 PointerHandler わりに を使用する必要があります。同じ機能が提供されます。

HoloLensのサポート

このHoloLensのコントローラー マッピングが、手付きから、手付きのない に WindowsMixedRealityController 変更されました WindowsMixedRealityGGVHand 。 これを考慮するために、ControllerMapping プロファイルを初めて開いた時点で自動アップデーターが実行されます。 この 1 回だけ移行手順をトリガーするには、2.0.0 にアップグレードした後、少なくとも 1 回はカスタム プロファイルを開きます。

InteractableHighlight

InteractableHighlight クラスの使用は非推奨とされました。 代 InteractableOnFocus わりに、 FocusInteractableStates クラスと資産を使用する必要があります。 の新しいアセットを作成するには、プロジェクト ウィンドウを右クリックし、[対話可能テーマ] の [作成 Theme InteractableOnFocus > Mixed Reality Toolkit > 選択 > します

HandInteractionPanZoom

HandInteractionPanZoom は入力コンポーネントではなかったので、UI 名前空間に移動されました。 HandPanEventData もこの名前空間に移動され、他の UI イベント データに対応するために簡略化されています。

2.0.0 でのアセンブリ名の変更

2.0.0 リリースでは、次のパターンに合わせて、すべての公式の Mixed Reality Toolkit アセンブリ名と関連するアセンブリ定義 (.asmdef) ファイルが更新されました。

Microsoft.MixedReality.Toolkit[.<name>]

場合によっては、複数のアセンブリがマージされ、内容の統一性が向上しています。 プロジェクトでカスタム .asmdef ファイルを使用している場合は、更新が必要な場合があります。

次の表では、RC2 .asmdef ファイル名が 2.0.0 リリースにマップされる方法について説明します。 すべてのアセンブリ名が .asmdef ファイル名と一致します。

MixedRealityToolkit

RC2 2.0.0
MixedRealityToolkit.asmdef Microsoft.MixedReality。Toolkit.asmdef
MixedRealityToolkit.Core.BuildAndDeploy.asmdef Microsoft.MixedReality。Toolkit。Editor.BuildAndDeploy.asmdef
MixedRealityToolkit.Core.Definitions.Utilities.Editor.asmdef 削除し、Microsoft.MixedReality を使用します。Toolkit。Editor.Utilities.asmdef
MixedRealityToolkit.Core.Extensions.EditorClassExtensions.asmdef Microsoft.MixedReality。Toolkit。Editor.ClassExtensions.asmdef
MixedRealityToolkit.Core.Inspectors.asmdef Microsoft.MixedReality。Toolkit。Editor.Inspectors.asmdef
MixedRealityToolkit.Core.Inspectors.ServiceInspectors.asmdef Microsoft.MixedReality。Toolkit。Editor.ServiceInspectors.asmdef
MixedRealityToolkit.Core.UtilitiesAsync.asmdef Microsoft.MixedReality。Toolkit。Async.asmdef
MixedRealityToolkit.Core.Utilities.Editor.asmdef Microsoft.MixedReality。Toolkit。Editor.Utilities.asmdef
MixedRealityToolkit.Utilities.Gltf.asmdef Microsoft.MixedReality。Toolkit。Gltf.asmdef
MixedRealityToolkit.Utilities.Gltf.Importers.asmdef Microsoft.MixedReality。Toolkit。Gltf.Importers.asmdef

MixedRealityToolkit.Providers

RC2 2.0.0
MixedRealityToolkit.Providers.OpenVR.asmdef Microsoft.MixedReality。Toolkit。Providers.OpenVR.asmdef
MixedRealityToolkit.Providers.WindowsMixedReality.asmdef Microsoft.MixedReality。Toolkit。Providers.WindowsMixedReality.asmdef
MixedRealityToolkit.Providers.WindowsVoiceInput.asmdef Microsoft.MixedReality。Toolkit。Providers.WindowsVoiceInput.asmdef

MixedRealityToolkit.Services

RC2 2.0.0
MixedRealityToolkit.Services.BoundarySystem.asmdef Microsoft.MixedReality。Toolkit。Services.BoundarySystem.asmdef
MixedRealityToolkit.Services.CameraSystem.asmdef Microsoft.MixedReality。Toolkit。Services.CameraSystem.asmdef
MixedRealityToolkit.Services.DiagnosticsSystem.asmdef Microsoft.MixedReality。Toolkit。Services.DiagnosticsSystem.asmdef
MixedRealityToolkit.Services.InputSimulation.asmdef Microsoft.MixedReality。Toolkit。Services.InputSimulation.asmdef
MixedRealityToolkit.Services.InputSimulation.Editor.asmdef Microsoft.MixedReality。Toolkit。Services.InputSimulation.Editor.asmdef
MixedRealityToolkit.Services.InputSystem.asmdef Microsoft.MixedReality。Toolkit。Services.InputSystem.asmdef
MixedRealityToolkit.Services.Inspectors.asmdef Microsoft.MixedReality。Toolkit。Services.InputSystem.Editor.asmdef
MixedRealityToolkit.Services.SceneSystem.asmdef Microsoft.MixedReality。Toolkit。Services.SceneSystem.asmdef
MixedRealityToolkit.Services.SpatialAwarenessSystem.asmdef Microsoft.MixedReality。Toolkit。Services.SpatialAwarenessSystem.asmdef
MixedRealityToolkit.Services.TeleportSystem.asmdef Microsoft.MixedReality。Toolkit。Services.TeleportSystem.asmdef

MixedRealityToolkit.SDK

RC2 2.0.0
MixedRealityToolkit.SDK.asmdef Microsoft.MixedReality。Toolkit。SDK.asmdef
MixedRealityToolkit.SDK.Inspectors.asmdef Microsoft.MixedReality。Toolkit。Sdk。Inspectors.asmdef

MixedRealityToolkit.Examples

RC2 2.0.0
MixedRealityToolkit.Examples.asmdef Microsoft.MixedReality。Toolkit。Examples.asmdef
MixedRealityToolkit.Examples.Demos.Gltf.asmdef Microsoft.MixedReality。Toolkit。Demos.Gltf.asmdef
MixedRealityToolkit.Examples.Demos.StandardShader.Inspectors.asmdef Microsoft.MixedReality。Toolkit。Demos.StandardShader.Inspectors.asmdef
MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.asmdef Microsoft.MixedReality。Toolkit。Demos.InspectorFields.asmdef
MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.Inspectors.asmdef Microsoft.MixedReality。Toolkit。Demos.InspectorFields.Inspectors.asmdef
MixedRealityToolkit.Examples.Demos.UX.Interactables.asmdef Microsoft.MixedReality。Toolkit。Demos.UX.Interactables.asmdef