本日は MRTKv2 の調査枠です。
MRTKv2 の Guides ドキュメントを少しずつ読み進めていきます。
MRTKv2のGuidesドキュメント
以下のドキュメントを読み進めていきます。
microsoft.github.io
以下のページでは有志による本ドキュメントの日本語翻訳が行われています。
投稿時点でこちらで未翻訳、または著者が興味のある部分について記事にしていきます。
hololabinc.github.io
本記事では以下のページを読み進めます。
microsoft.github.io
MRTKでNearInteractionを追加する方法
NearInteractionスクリプトの例
タッチイベント
この例ではキューブを作成してタッチ可能にすることで、タッチで色を変更します。
public static void MakeChangeColorOnTouch(GameObject target) { // Add and configure the touchable // タッチ可能を追加および構成 var touchable = target.AddComponent<NearInteractionTouchableVolume>(); touchable.EventsToReceive = TouchableEventType.Pointer; var material = target.GetComponent<Renderer>().material; // Change color on pointer down and up // ポインターの色を上下に変更します var pointerHandler = target.AddComponent<PointerHandler>(); pointerHandler.OnPointerDown.AddListener((e) => material.color = Color.green); pointerHandler.OnPointerUp.AddListener((e) => material.color = Color.magenta); }
グラブイベント
以下の例は GameObject をドラッグ可能にする方法を示しています。
ゲームオブジェクトにコライダーが搭載されていると仮定します。
public static void MakeNearDraggable(GameObject target) { // Instantiate and add grabbable // インスタンス化してグラブ可能を追加する target.AddComponent<NearInteractionGrabbable>(); // Add ability to drag by re-parenting to pointer object on pointer down // ポインターオブジェクトの親を変更してドラッグする機能を追加します var pointerHandler = target.AddComponent<PointerHandler>(); pointerHandler.OnPointerDown.AddListener((e) => { if (e.Pointer is SpherePointer) { target.transform.parent = ((SpherePointer)(e.Pointer)).transform; } }); pointerHandler.OnPointerUp.AddListener((e) => { if (e.Pointer is SpherePointer) { target.transform.parent = null; } }); }