- Home /
Switch axis so phone is flat with accelerometer
I am working on a game that uses the accelerometer to move a ball with the mobile phone as a controller. I got it to work with this script but I'd like the change one thing-- I'd like the phone to be layed down with the screen up as as neutral (no force being applied) verses how it works right now with the phone is up in landscape view I'd like it to work like this.
this is the part of the script that takes the accelerometer and turns it into steering but I can't for the life of me figure out how to flip the axis so that +Z is up.
accel.x = accelerometer.ACCELERATION_X; accel.y = accelerometer.ACCELERATION_Y; accel.z = accelerometer.ACCELERATION_Z;
//accelerometers due to gravity can really only sense 2 axis (can't filter out gravity)
//here we convert those 2 axis into horizontal and vertical and normalize
horizontal = EasyWiFiUtilities.relativeAngleInAxis(Vector3.up, -accel, Vector3.forward) / normalizeDegrees; //forward to right
vertical = EasyWiFiUtilities.relativeAngleInAxis(Vector3.up, -accel, Vector3.right) / normalizeDegrees;
horizontal *= -sensitivity;
vertical *= -sensitivity;
actionVectorPosition.x = horizontal;
actionVectorPosition.y = 0f;
actionVectorPosition.z = vertical;
myRigidbody.AddForce(actionVectorPosition);
Can you help me figure out where in your script I can make the adjustment?
Answer by athomitron · Apr 30, 2018 at 12:50 AM
i got it to work! I had to change the first part so that:
accel.x = -accelerometer.ACCELERATION_X; //was X accel.z = accelerometer.ACCELERATION_Y; // was Y accel.y = accelerometer.ACCELERATION_Z; // was Z
Your answer
Follow this Question
Related Questions
Camera linked directly to device orientation 0 Answers
How to convert Input.GetAxis to Accelerometer control? 2 Answers
Android Z Axis 0 Answers
jittery movement when using transform.up and transform.Rotate 0 Answers
Accelerometer and drag 1 Answer