- 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