公式のチュートリアルの動画だと若干コードが古かったりしたのでメモ
詳細な動作については後日追記予定
以下のボタン操作のバインディングのメモ
- バンパーボタン
- ホームボタン
- タッチパッド
- トリガー
using UnityEngine;
using UnityEngine.XR.MagicLeap;
/// <summary>
/// MagicLeapコントローラ.
/// </summary>
public class MlController : MonoBehaviour, IController
{
[SerializeField] MLInput.Controller controller;
void Start()
{
// コントローラの入力を有効にし,対応するイベントハンドラを登録する.
MLInput.Start();
MLInput.OnControllerButtonDown += OnButtonDown;
MLInput.OnControllerButtonUp += OnButtonUp;
MLInput.OnTriggerDown += OnTriggerDown;
MLInput.OnTriggerUp += OnTriggerUp;
MLInput.OnControllerTouchpadGestureStart += OnTouchPadGestureStart;
MLInput.OnControllerTouchpadGestureContinue += OnTouchPadGestureContinue;
MLInput.OnControllerTouchpadGestureEnd += OnTouchPadGestureEnd;
}
void OnDestroy()
{
// コントローラの入力を無効にし,登録していたイベントハンドラを削除する.
MLInput.Stop();
MLInput.OnControllerButtonDown -= OnButtonDown;
MLInput.OnControllerButtonUp -= OnButtonUp;
MLInput.OnTriggerDown -= OnTriggerDown;
MLInput.OnTriggerUp -= OnTriggerUp;
MLInput.OnControllerTouchpadGestureStart -= OnTouchPadGestureStart;
MLInput.OnControllerTouchpadGestureContinue -= OnTouchPadGestureContinue;
MLInput.OnControllerTouchpadGestureEnd -= OnTouchPadGestureEnd;
}
/// <summary>
/// ボタン押下時の処理.
/// </summary>
/// <param name="controllerId"></param>
/// <param name="button"></param>
void OnButtonDown(
byte controllerId,
MLInput.Controller.Button button)
{
switch (button)
{
case MLInput.Controller.Button.Bumper:
break;
case MLInput.Controller.Button.HomeTap:
Application.Quit();
break;
}
}
/// <summary>
/// ボタン押上時の処理.
/// </summary>
/// <param name="controllerId"></param>
/// <param name="button"></param>
void OnButtonUp(
byte controllerId,
MLInput.Controller.Button button)
{
switch (button)
{
case MLInput.Controller.Button.Bumper:
break;
case MLInput.Controller.Button.HomeTap:
break;
}
}
/// <summary>
/// トリガーの押下処理.
/// </summary>
/// <param name="controllerId"></param>
/// <param name="value"></param>
void OnTriggerDown(
byte controllerId,
float value)
{
}
/// <summary>
/// トリガーの押上処理.
/// </summary>
/// <param name="controllerId"></param>
/// <param name="value"></param>
void OnTriggerUp(
byte controllerId,
float value)
{
}
/// <summary>
/// タッチパッドのジェスチャー始点.
/// </summary>
/// <param name="controllerId"></param>
/// <param name="gesture"></param>
void OnTouchPadGestureStart(
byte controllerId,
MLInput.Controller.TouchpadGesture gesture)
{
}
/// <summary>
/// タッチパッドのジェスチャー操作中.
/// </summary>
/// <param name="controllerId"></param>
/// <param name="gesture"></param>
void OnTouchPadGestureContinue(
byte controllerId,
MLInput.Controller.TouchpadGesture gesture)
{
}
/// <summary>
/// タッチパッドのジェスチャ終点.
/// </summary>
/// <param name="controllerId"></param>
/// <param name="gesture"></param>
void OnTouchPadGestureEnd(
byte controllerId,
MLInput.Controller.TouchpadGesture gesture)
{
}
}
取得結果
MagicLeapのインプット回り取れるようにした( ついでにそれっぽいデバッグウィンドウも作ってみた pic.twitter.com/KiFPQMpIzk
— 松本隆介 (@matsumotokaka11) July 5, 2020
Top comments (0)