MRが楽しい

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

MRTKを使って任意のオブジェクトに触れた時に発生するイベントを登録する

本日は MRTK の小ネタ枠です。
MRTKを使って任意のオブジェクトに触れた時に発生するイベントを登録する手順を記事にします。
f:id:bluebirdofoz:20211014214329j:plain

前提条件

前回記事の続きです。
Interactable コンポーネントと新たに コンポーネントを利用します。
bluebirdofoz.hatenablog.com

NearInteractionTouchable

Pointer がオブジェクトに触れるたびに PointerDown イベントと PointerUp イベントを取得するタッチ可能なサーフェスを構成します。
docs.microsoft.com

サンプルプロジェクトの作成

MRTK をインポートしたサンプルプロジェクトを作成します。

MRTK のインポートと基本設定

MRTK のインポートと HoloLens 向けプロジェクトの基本設定を行い、サンプルプロジェクトを作成します。
手順の詳細は以下の記事を参照してください。
bluebirdofoz.hatenablog.com

サンプルシーンの作成

シーンには任意のオブジェクトとして Cube オブジェクトを作成しました。
f:id:bluebirdofoz:20211014214405j:plain

[Add Componet]から[Interactable]コンポーネントを選択してオブジェクトに追加します。
f:id:bluebirdofoz:20211014214415j:plain

[Receivers]パネルを開き、[Add Event]をクリックして受け取りイベントを追加します。
f:id:bluebirdofoz:20211014214426j:plain

Receiver を追加したら[EventReceiverType]に[InteractableOnTouchReceiver]を設定します。
f:id:bluebirdofoz:20211014214437j:plain

[OnTouch]イベントの設定欄が表示されます。
Cube オブジェクトの LookAt 関数を指定し、Touch イベント発生時にカメラ方向を向くように設定しました。
f:id:bluebirdofoz:20211014214449j:plain

最後にオブジェクトに触れた時に Touch イベントが発生するように[Add Componet]から[NearInteractionTouchable]コンポーネントを選択して追加します。
f:id:bluebirdofoz:20211014214501j:plain

[NearInteractionTouchable]コンポーネントのアタリ判定を Collider に一致させるため[Fix Bounds]と[Fix Center]ボタンをクリックします。
f:id:bluebirdofoz:20211014214513j:plain

これでオブジェクトに触れた時にイベントが発生するようになりました。
f:id:bluebirdofoz:20211014214523j:plain

動作確認

シーンを再生して動作を確認します。
f:id:bluebirdofoz:20211014214533j:plain

適当な方向から Cube オブジェクトに触れると [OnTouch]イベントが実行され、Cube オブジェクトがこちらを向きます。
f:id:bluebirdofoz:20211014214541j:plain