With VR character's rotation is applied twice or double
I have a Gvr rig attached to my character, so the VR camera and perspective will be behind her. If she points straight and I give her movement, she goes straight. But if I use the control to turn her 90 degrees to the right, she the runs 90 degrees to her right -- or as if 180 degrees, double the 90 degrees from my control.
Character (A03, the sample Amazon)
A03
Root
GvrMain
Then in my script:
move = Input.GetAxis("Vertical") * speed;
rotation = Input.GetAxis("Horizontal");
transform.Rotate (0, rotation, 0);
Vector3 mvt = (move * transform.forward);
transform.Translate(mvt);
Any recommendation or suggestion? Thank you in advance
Sorry -- I don't know why "5." appears in the code block. I tried to edit and remove it but it won't go. In my real script, it is not there.
That 5 is just denoting it is line "5" so it's easier to refer to specific line numbers.
Answer by basilwort5 · Jun 09, 2016 at 01:51 AM
Found it -- had nothing to do with VR, but with my script. Instead of transform.Translate, add a RigidBody component to the character. Then, movement like this:
Vector3 mvt = (move * transform.forward);
player.MovePosition (player.position - mvt);
I set the variable "player" to the instance of RigidBody.
Your answer
Follow this Question
Related Questions
Tilt camera on movement 2 Answers
Rotate Joystick with camera 0 Answers
Camera Controller script as a child object,Camera Control as a Child Object for my Player 0 Answers
How do you make the vrtk rotator accommodate more than one axis at a time? 0 Answers
Rotate Unity3D FirstPersonCamera with values from Arduino in form of -127 to 127 (degrees) … 0 Answers