DK2 + Leap Pinch Utillity - Making the camera move in sync with the orientation the HMD is facing — Oculus
New to the forums? Click here to read the "How To" Guide.

Developer? Click here to go to the Developer Forums.

DK2 + Leap Pinch Utillity - Making the camera move in sync with the orientation the HMD is facing

DinisFabioDinisFabio Posts: 2
edited May 2016 in Support
Hey guys,

At the moment I'm getting some trouble in making the camera movement follow the HMD camera orientation. 

In Leap Pinch Utility you get a scene which has LMHeadMountedRig and a few child objects which allows you to interact with objects in the scene (just to simplify things. It's a bit more complex).

I made a script that allows me to move my camera, which is a component of CenterEyeAnchor (child of LMHeadMountedRig). The scene is played and, of course, I'm with my HMD. I can move with WASD using my script, but the problem occurs when I turn my head (let's say to the left). The reference system (axis) turn but I'm still pressing W and going in front. Like your body goes one way but your head is looking to the left.

I hope I could explain the issue. English isn't my native language, so sorry in advance if the text is a bit messy. 

The script that allows me to move the camera is this (very simple, and I believe not the brightest) : 
-------------------------------------
using UnityEngine;
using System.Collections;

public class Teste_movement : MonoBehaviour {



void Update () {

//transform.Translate(Vector3(-Input.GetAxis("Horizontal") * speed * Time.deltaTime, -Input.GetAxis("Vertical") * speed * Time.deltaTime, 0.0));

if (Input.GetKey(KeyCode.W)){

transform.Translate(Vector3.forward * Time.deltaTime,Space.Self);
Debug.Log ("Moving forward");

}
if(Input.GetKey(KeyCode.A)){

transform.Translate(Vector3.left * Time.deltaTime, Space.Self);
Debug.Log ("Moving left");

}
if(Input.GetKey(KeyCode.S)){

transform.Translate(Vector3.back* Time.deltaTime, Space.Self);
Debug.Log ("Moving back");
}

if(Input.GetKey(KeyCode.D)){

transform.Translate(Vector3.right * Time.deltaTime, Space.Self);
Debug.Log ("Moving right");

}

}

}
--------------------------------------------------------------------------------------

I tried using FPSController, RigidBodyFPSController prefabs with LMHeaMountedRig but none of them worked.

Hope you guys can help me.

Thank you





Comments

  • DinisFabioDinisFabio Posts: 2
    edited May 2016
    Solved ;) Just made my container's transform.translate match the Camera.main.transform.forward or Camera.main.transform.right. Multiply by 1 or -1 to get the back and left directions.
Sign In or Register to comment.