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 にアクションを追加する

    • Move、vector2でinに作成
    • f:id:yotiky:20211020232740p:plain
  • Binding UI を開いてコントローラーにアクションを設定する

    • 左コントローラーはデフォルトで回転が設定されているので、ミラーをやめて右コントローラーのジョイスティックを使用する
    • f:id:yotiky:20211020232921p:plain
  • スクリプトを作成し、Inspectorでアクションを紐付ける

    • f:id:yotiky:20211020233043p:plain
public class PlayerMove : MonoBehaviour
{
    public float speed = 0.5f;
    public SteamVR_Action_Vector2 moveAction;

    void Update()
    {
        var direction = Player.instance.hmdTransform.TransformDirection(new Vector3(moveAction.axis.x, 0, moveAction.axis.y));
        var position = transform.localPosition;
        position.x += speed * Time.deltaTime * direction.x;
        position.z += speed * Time.deltaTime * direction.z;
        transform.localPosition = position;
    }
}

参考