0
Unity 프로그램에서 사용자 지정 위치를 가리키는 나침반을 만들려고합니다. 그러나 그것은 완전히 벗어 났고, 일반적으로 잘못된 방향을 지적하고, 내 논리에 무엇이 잘못되었는지를 파악할 수없는 것 같습니다.Unity에서 특정 위치로 나침반 만들기
여기에서 곡선 형상 베어링 방정식을 사용하고 있습니다 : http://www.yourhomenow.com/house/haversine.html
- 가 현재 위치를 가져옵니다.
- 현재 위치에서 목표 위치로 베어링을 계산하십시오.
진정한 북쪽을 기준으로 화면 나침반을 회전합니다. 내가 그 코드 오프셋 (offset) 베어링을 제거하면
// Calculate bearing between current location and target location // Get current GPS location float lat1 = Input.location.lastData.latitude; float lon1 = Input.location.lastData.longitude; float lat2 = TargetLatitude; float dLon = TargetLongitude - lon1; // Calculate bearing var y = Mathf.Sin(dLon) * Mathf.Cos(lat2); var x = Mathf.Cos(lat1) * Mathf.Sin(lat2) - Mathf.Sin(lat1) * Mathf.Cos(lat2) * Mathf.Cos(dLon); var brng = ((Mathf.Atan2(y, x)*(180.0f/Mathf.PI)) + 360.0f) % 360.0f; Dump.text = brng.ToString(); // Rotate the to target location relative to north. Z axis pointing out of screen. transform.eulerAngles = new Vector3(0, 0, Mathf.MoveTowardsAngle(transform.localEulerAngles.z, Input.compass.trueHeading + brng, COMPASS_MAXDELTA));
, 그것은 디지털 나침반만큼 북쪽으로 지적한다.
실제로 문제가되었습니다. 그리고 지금은 기분이 나쁩니다. 커피 한 잔 할 시간이야. – BlamKiwi