My compass script works great for the most part but I have two problems I cans solve. The first is every direction but north displays, but displays the string Unknown constantly over the heading letter. The second problem is that when displaying the heading degree it constantly displays 0 on top of the heading degree. The value of degree and heading debugs correctly to a single number/letter but another value must be hidden in the string. There must be some way I’m doing it that has a problem so if anybody could suggest a better way it would be appreciated. Here are the script snippets for the two problems.
//Determine the direction we are heading
if(_heading > 315 && _heading < 45)
_headingDirection = "N";
else if(_heading > 45 && _heading < 135)
_headingDirection = "E";
else if(_heading > 135 && _heading < 225)
_headingDirection = "S";
else if(_heading > 225 && _heading < 315)
_headingDirection = "W";
else
_headingDirection = "Unknown";
if(debug)Debug.Log("Heading Direction: " + _headingDirection);
And as for the Degree finder
timer += Time.deltaTime;
_heading = transform.rotation.eulerAngles.y - _gpsRefN;
if(_heading < 0)_heading += 360;
if(timer > (1 / updateFreq)) {
timer = 0;
}
//Round the heading degree to the nearest whole number
_heading = Mathf.Round(_heading * 1f) / 1f;
if(debug)Debug.Log(transform.rotation.eulerAngles.y + " - " + _gpsRefN + " = " + _heading);