トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

VRTKでタッチパッド入力の諸々を取得したい【Unity】

VRTKでタッチパッド入力の諸々を取得したい

公式リファレンス

vrtoolkit.readme.io

f:id:bibinbaleo:20200624134721p:plain

タッチパッドの角度

f:id:bibinbaleo:20200624134806p:plain

touchpadAngleで0~360のfloatで取れるって!

結局GetTouchpadAxisAngle()使ってた・・・

f:id:bibinbaleo:20200624142821p:plain

private VRTK_ControllerEvents RightController;

~~

float angle = RightController.GetTouchpadAxisAngle();

 

if (70 < angle && angle < 110)
{
  //右に倒した
}

みたいな感じでいいのかな~

こんな地道な感じでいいのか・・・?違う気がする

タッチパッドに触れている

RightController.TouchpadAxisChanged

タッチパッドには触れているけど、倒していない

結局よくわからなかった。

TouchpadTouchEndはタッチパッドから完全に手を離したとき。

 

GetTouchpadAxis()はタッチパッドの触れている位置をVector2で返してくれる。

f:id:bibinbaleo:20200624164543p:plain

Debug.Logで見る限り数字はこんな感じかな~ちゃんと見ていないのでよくわからん!

f:id:bibinbaleo:20200624164424p:plain

float x = RightController.GetTouchpadAxis().x;
float y = RightController.GetTouchpadAxis().y;

if (-0.5 < x && x < 0.5 && - 0.5 < y && y < 0.5)
{
//スティックを真ん中に戻したとき
}

全体

どこか別の記事に書いたかもしれないけど、VRTKのコントローラーイベントを取得して、スクリプトを書くときは以下のようにしている。

[SerializeField, NotNull] private VRTK_ControllerEvents RightController;

        private void Awake()
        {
            RightController.TriggerPressed += RightTriggerPressedHandler;///右手トリガー
            RightController.ButtonOnePressed += ButtonAPressedHandler;///右手Aボタン
            RightController.ButtonTwoPressed += ButtonBPressedHandler;///右手Bボタン
            RightController.GripPressed += RightGripPressedHandler;///右手グリップ
            LeftController.ButtonOnePressed += ButtonXPressedHandler;///左手Xボタン
            LeftController.ButtonTwoPressed += ButtonYPressedHandler;///左手Yボタン
            LeftController.GripPressed += LeftGripPressedHandler;///左手グリップ
            RightController.TouchpadAxisChanged += RightTouchpadAxisChangedHandler;///右のタッチパッドを触った
            RightController.TouchpadTouchEnd += RightTouchpadTouchEndHandler;///右のタッチパッドから手を離した
        }

        private void RightTriggerPressedHandler(object sender, ControllerInteractionEventArgs e)
        {
           ///右手トリガーを押したときの挙動
        }