Input.compass horizontal shaking
Hi all! I'm trying to build some sort of compass app (android). Simply via a camera oriented to a canvas(with webcamtexture) and the sprites which oriented around my camera( with a degree marks). Unity 5.3.1f The image to understand:
http://i68.tinypic.com/ivwn10.jpg
When I turn my phone in horizontal projection those degree marks are not turning smoothly. They are quite shaky. The video to understand:
Any ideas why it's so shaky? And how to fix that?
The code:
using UnityEngine;
using System.Collections;
public class QM_Compass : MonoBehaviour {
private Transform myTransform;
public int facingDir;
public int degreeOffset;
public float test_float;
public Transform scrollBar;
void Awake()
{
Input.compass.enabled = true;
Input.location.Start();
}
void Start ()
{
myTransform = transform;
}
void Update () {
test_float = Input.compass.trueHeading;
if (test_float > 360) test_float = test_float % 360;
transform.eulerAngles = new Vector3(0, test_float, 0);
degreeOffset = facingDir = (int)test_float;
}
}
Answer by nonathaj · Feb 24, 2016 at 08:26 AM
It looks like you are getting the data that is available to you, but the data is inaccurate. I would try checking Compass.headingAccuracy over a series of frames and see if you are getting reliable reading, and if you are that is doesn't have inaccuracies.
Thanks for the reply!
I've added
public float headingAccuracy;
headingAccuracy = Input.compass.headingAccuracy;
and gui.label with headingAccuracy variable
It shows me 0. So what is the conclusions? I use Android 4.0.4.
Not possible to fix that?
Your answer
Follow this Question
Related Questions
UnityException: Transform child out of bounds (C# Unity) 0 Answers
Can't Destroy Transform Component Error after exiting Play mode 2 Answers
"transform.Translate" doesn't works 2 Answers
Why doesn't my asteroid field perfectly move with me? 1 Answer
What's the difference between transform.position + offset and transform.TransformPoint(offset) 1 Answer