本日は MRTK の技術調査枠です。
MRTKのSliderから発生イベントと値を取得する手順を記事にします。
MRTKのSlider
MRTK には Slider という操作UXのテンプレートが含まれています。
摘みを操作することで連続的な値を直感的に設定することができます。
microsoft.github.io
Sliderの利用方法
Slider は[Mixed Reality Toolkit Foundation/SDK/Features/UX/Prefabs/Sliders]配下の PinchSlider.prefab をシーンに配置することで利用できます。
またはメニューから[Mixed Reality Toolkit -> Toolbox]で[MRTK Toolbox]画面を開き、Slider を選択することで利用できます。
シーンを再生すると動作が確認できます。
摘みの部分をハンドレイ、または、グラブ操作で掴んで操作することができます。
値の取得方法
Slider の変更イベントを取得するには以下のイベント関数を利用します。
・OnValueUpdated:スライダーの値が変更されると呼び出されます
・OnInteractionStarted:ユーザーがスライダーを掴んだ際に呼び出されます
・OnInteractionEnded:ユーザーがスライダーを離した際に呼び出されます
・OnHoverEntered:ユーザーの手が近距離または遠距離インタラクションを使用してスライダーに触れた際に呼び出されます
・OnHoverExited:ユーザーの手がスライダーから離れた際に呼び出されます。
コード例として以下のサンプルスクリプトを作成しました。
・SliderEventTest.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; // SliderEventData を利用するため using Microsoft.MixedReality.Toolkit.UI; public class SliderEventTest : MonoBehaviour { // OnSliderUpdated 設定用関数 public void DebugOnSliderUpdated(SliderEventData eventData) { Debug.Log("OnValueUpdated Event:" + eventData.NewValue); } // OnInteractionStarted 設定用関数 public void DebugOnInteractionStarted(SliderEventData eventData) { Debug.Log("OnInteractionStarted Event:" + eventData.NewValue); } // OnInteractionEnded 設定用関数 public void DebugOnInteractionEnded(SliderEventData eventData) { Debug.Log("OnInteractionEnded Event:" + eventData.NewValue); } // OnHoverEntered 設定用関数 public void DebugOnHoverEntered(SliderEventData eventData) { Debug.Log("OnHoverEntered Event:" + eventData.NewValue); } // OnHoverExited 設定用関数 public void DebugOnHoverExited(SliderEventData eventData) { Debug.Log("OnHoverExited Event:" + eventData.NewValue); } }
サンプルスクリプトを適当なオブジェクトにアタッチします。
PinchSlider の各イベントに作成した関数への参照を設定します。
シーンを再生して Slider を操作すると各種イベントが発生し、その時点の値が取得できる様子がログで確認できます。