Ron Dragor Geschrieben 28. September 2014 Melden Share Geschrieben 28. September 2014 Hi, Leute! Weis jemand, wie ich in Unity per c# Zugriff auf das GPS bei Android und iOS bekomme? Ich sollte die aktuelle Position als Koordinaten in variablen speichern und anzeigen können. Am Besten mit Google Maps anbindung. Jedoch hab ich kein Pln, wie ich darauf zugreifen kann. Weis das jemand? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Orchards Geschrieben 28. September 2014 Melden Share Geschrieben 28. September 2014 Über "Input.location" lässt sich die Lokalisierung aktivieren und dann steht die aktuelle Position in "Input.location.lastData" zur Verfügung. http://docs.unity3d.com/ScriptReference/LocationService.html http://docs.unity3d.com/ScriptReference/LocationInfo.html Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ron Dragor Geschrieben 28. September 2014 Autor Melden Share Geschrieben 28. September 2014 Vielen Dank. Das schau ich mir mal an. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ron Dragor Geschrieben 29. September 2014 Autor Melden Share Geschrieben 29. September 2014 Ich hab mir mal den Code zu Testzwecken aus der Unity Documentation kopiert: IEnumerator GPS() { if (!Input.location.isEnabledByUser) return; Input.location.Start(); int maxWait = 20; while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0) { yield return new WaitForSeconds(1); maxWait--; } if (maxWait < 1) { print("Timed out"); return; } if (Input.location.status == LocationServiceStatus.Failed) { print("Unable to determine device location"); return; } else print("Location: " + Input.location.lastData.latitude + " " + Input.location.lastData.longitude + " " + Input.location.lastData.altitude + " " + Input.location.lastData.horizontalAccuracy + " " + Input.location.lastData.timestamp); Input.location.Stop(); } Bei return; bekomme ich folgende Fehlermeldung: Assets/Scripte/Berechnungen.cs(331,13): error CS0126: An object of a type convertible to `bool' is required for the return statement An dieser Stelle wird doch abgefragt, ob das GPS am Gerät eingeschaltet icht, oder nicht?: if (!Input.location.isEnabledByUser) return; Input.location.Start(); Fehlen da nicht auch Klammern: if (!Input.location.isEnabledByUser) { return; Input.location.Start(); } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 29. September 2014 Melden Share Geschrieben 29. September 2014 Da hat wohl wer bei Unity nicht nachgedacht. Eine Coroutine beendet man nicht mit return, sondern mit yield break; Also einfach alle returns erstetzen, dann sollte zumindest das kein Problem mehr sein //e: Dass Input.location.Stop() unter Umständen nicht aufgerufen wird, finde ich auch etwas besorgniserregend. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ron Dragor Geschrieben 29. September 2014 Autor Melden Share Geschrieben 29. September 2014 Ok. Danke. Ist mir aber schon ein paar mal aufgefallen das manches Codes in der Doku nicht funktionieren, weil kleinere Fehler drin sind. Ich setz dann einfach das Input.location.Stop() mit auf den "Beenden" Button. Hat super funktioniert mit yield. Danke! Geht das überhaupt aus Unity in der Android App direkt die Koordinaten an Google Maps zu senden? Also, dass sich der Browser automatisch öffnet und die Koordinaten markiert? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.