yokominehuuのブログ

大学生のIT勉強日記です。

コントローラーの向いている方向へ移動する

public class OVRCameraRigMove : MonoBehaviour {


    //移動速度の係数
    [SerializeField]
    private float _moveSpeed = 5;

    //=================================================================================
    //初期化
    //=================================================================================

    //コンポーネントがAddされた時に実行される
    private void Reset()
    {

    }


    //=================================================================================
    //更新
    //=================================================================================

    private void Update()
    {
        // アクティブコントローラー取得
        OVRInput.Controller activeController = OVRInput.GetActiveController();
        //コントローラーの回転角度(-1 ~ 1)を取得。rot=(横回転,縦回転,横ねじれ回転,縦ねじれ回転)だったかな?
        Quaternion rot = OVRInput.GetLocalControllerRotation(activeController);
       
        //距離distance
        Vector3 dis = rot * Vector3.forward;
        //トリガーが押されているとき
        if (OVRInput.Get(OVRInput.Button.PrimaryIndexTrigger))
        {
            //移動。Translate(Vector3,軸)
            transform.Translate(dis * Time.deltaTime * _moveSpeed, Space.Self);
        }
    }
}