1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SteamVR 基礎動作 まとめ

Last updated at Posted at 2023-02-26

SteamVR plugin の使用法の備忘録になります。

HMDの動き反映

IntaractionSystem/core/Prefabs/PlayerをHierarchyに入れるだけでOK
HMDの位置がPlayerに反映される
image.png

コントローラのボタン取得

ボタンに応じた処理をするには、ボタンの名前と押されたときのブールアクションをつなげる必要がある
window/steamVRinput内のOpen binding UIから各ボタンについているブールアクション名を見れる。
トリガーに クリック: GarbPinchとついている場合

Input.cpp
    //トリガーの状態を記録する変数
    [SerializeField] SteamVR_Action_Boolean actionToHaptic = SteamVR_Actions._default.GrabPinch;
    //トリガー押したときにする処理
    if (actionToHaptic.GetStateDown(SteamVR_Input_Sources.LeftHand)){/*処理*/}

で処理を行える。
stateDownの代わりにstateUpでボタンが離されたか、lastStateDownで1フレーム前で押されたか、lastStateUpで1フレーム前に離されたか、などがある。

オブジェクトを持つ

「Rigidbody」,「SteamVR/InteractionSystem/Core/Scriptsの Interactable ,Throwableをオブジェクトにアタッチする。

HandIn.cpp
        //掴まれる予定のオブジェクトにアタッチする
        //離された時
        private void OnHandHoverEnd(Hand hand)
        {
            Debug.Log("OnHandHoverEnd:" + gameObject.name + "/handType:" + hand.handType);
        }
        //掴まれた時
        private void OnAttachedToHand(Hand hand)
        {
            Debug.Log("OnAttachedToHand:" + gameObject.name + "/handType:" + hand.handType);
            GetComponent<Collider>().isTrigger = true;//あたり判定を透過に変更する
        }

テレポート機能追加

1Assets/SteamVR/InteractionSystem/Teleport/Prefabs/Teleporting をhierarchyに入れる。
→コントローラからガイドが出てテレポートが可能になる 
2 テレポートしたい場所にTeleportAreaを付ける テレポートしたくない場所にはTeleportAreaを付けない

当たり判定

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?