yotiky Tech Blog

とあるエンジニアの備忘録

Unity (Oculus Quest) - SteamVR Plugin でコントローラーのボタン入力

目次

開発環境

  • Quest1
  • Oculus Link + SteamVR
  • Unity 2021.2.0b16.3733
  • Unity 2020.3.17f1
  • SteamVR Plugin 2.7.3

前提

Playerプレハブを使うので前回の記事で準備ができていること。

yotiky.hatenablog.com

実装

  • Window > SteamVR Input を開いて、ActionSet の default にアクションを追加する

    • AとBという名前でbooleanをinに作成
    • f:id:yotiky:20211020233557p:plain
  • Binding UI を開いてコントローラーにアクションを設定する

    • 今回はミラーをやめて右コントローラーのAボタン、Bボタンを使用する
    • f:id:yotiky:20211020233733p:plain
  • スクリプトを作成し、Inspectorでアクションを紐付ける

    • f:id:yotiky:20211020233941p:plain
public class QuestButtonHandler : MonoBehaviour
{
    public SteamVR_Action_Boolean aAction;
    public SteamVR_Action_Boolean bAction;

    void Update()
    {
        if (aAction.GetStateDown(SteamVR_Input_Sources.LeftHand))
        {
            Debug.Log("You are clicking : X");
        }
        if (bAction.GetStateDown(SteamVR_Input_Sources.LeftHand))
        {
            Debug.Log("You are clicking : Y");
        }
        if (aAction.GetStateDown(SteamVR_Input_Sources.RightHand))
        {
            Debug.Log("You are clicking : A");
        }
        if (bAction.GetStateDown(SteamVR_Input_Sources.RightHand))
        {
            Debug.Log("You are clicking : B");
        }
    }
}

参考