- Home /
Google cardboard sdk + Bluetooth controller joystick = move ?
I have a project for unity. I use bluetooth controller and i want to move with its joystick with google cardboard sdk. I try this code for move:
         public float speed = 2f;
     public float sensitivity = 2f;
     CharacterController player;
 
     public GameObject eyes;
     public Transform vrCamera;
 
     float moveFB;
     float moveLR;
 
     void Start () {
         player = GetComponent<CharacterController> ();
     }
 
     void Update () {
         moveFB = Input.GetAxis ("Vertical") * speed;
         moveLR = Input.GetAxis ("Horizontal") * speed;
 
         Vector3 movement = new Vector3 (moveLR, 0, moveFB);
 
         movement = transform.rotation * movement;
         player.Move (movement * Time.deltaTime);
         }
its ok, i can move. But i have a problem; I'm walking forward, but when I turn my head, it keeps progressing at the position I did not turn my head. After seeing this, I made the "Head Camera" and "CarboardMain" files rotate the same way. However, the points they look for because of the parent-child relationship are never the same. To do this I use the following headcamera script:
 [AddComponentMenu("Cardboard/CardboardHead")]
 
 public class TrackRotation : MonoBehaviour {
 
 
         public bool trackRotation = true;
 
         public Transform target;
         public bool updateEarly = false;
 
         public Ray Gaze {
             get {
                 UpdateHead();
                 return new Ray(transform.position, transform.forward);
             }
         }
 
         public delegate void HeadUpdatedDelegate(GameObject head);
 
         /// Called after the head pose has been updated with the latest sensor data.
         public event HeadUpdatedDelegate OnHeadUpdated;
 
         void Awake() {
             Cardboard.Create();
         }
 
         private bool updated;
 
         void Update() {
             updated = false;  // OK to recompute head pose.
             if (updateEarly) {
                 UpdateHead();
             }
         }
 
         // Normally, update head pose now.
         void LateUpdate() {
             UpdateHead();
         }
 
         // Compute new head pose.
         private void UpdateHead() {
             if (updated) {  // Only one update per frame, please.
                 return;
             }
             updated = true;
             Cardboard.SDK.UpdateState();
 
             if (trackRotation) {
                 var rot = Cardboard.SDK.HeadPose.Orientation;
                 if (target == null) {
                     transform.localRotation= rot;        
                 } else {
                     transform.rotation = target.rotation * rot ;
                 }
             }
 
             if (OnHeadUpdated != null) {
                 OnHeadUpdated(gameObject);
             }
         }
     }
Do you have any suggestions? Can I use the joystick part of the bluetooth control with VR to walk?


Answer by Pyrotechnic · Feb 07, 2017 at 08:31 AM
look up NurFace games on youtube. He has some tutroials on VR movement and some movement asset packs
Your answer
 
 
             Follow this Question
Related Questions
Unable to find libaudiopluginvrunity 1 Answer
GoogleVR (Cardboard) how to move using head-tilt 0 Answers
[Daydream] Disable default volume menu? 0 Answers
How do I use android bluetooth controller in unity? 7 Answers
Cardboard SDK secretly changing FOV? 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                