private void OnApplicationPause(bool pause) { if (pause) { MLLocationStarterKit.Stop(); } else { #if PLATFORM_LUMIN MLLocationStarterKit.Start(); #endif } }
/// <summary> /// Starts the MLLocation API and polls data if needed. /// </summary> private void StartupAPI() { #if PLATFORM_LUMIN MLResult result = MLLocationStarterKit.Start(); if (!result.IsOk) { Debug.LogError("Error: LocationExample failed to start MLLocation, disabling script."); enabled = false; return; } #endif GetLocation(); StartCoroutine(GetFineLocationLoop()); }
/// <summary> /// Polls current location data. /// </summary> private void GetLocation(bool useFineLocation = false) { #if PLATFORM_LUMIN MLResult result = MLLocationStarterKit.GetLocation(out MLLocation.Location newLocation, useFineLocation); if (result.IsOk) { string formattedString = "{0}:\t<i>{1}</i>\n" + "{2}:\t<i>{3}</i>\n" + "{4}:\t<i>{5}</i>\n" + "{6}:\t<i>{7}</i>\n" + (useFineLocation ? "{8}:\t<i>{9}</i>" : ""); Text locationText = useFineLocation ? _fineLocationText : _coarseLocationText; locationText.text = String.Format(formattedString, LocalizeManager.GetString("Latitude"), newLocation.Latitude, LocalizeManager.GetString("Longitude"), newLocation.Longitude, LocalizeManager.GetString("PostalCode"), newLocation.HasPostalCode ? newLocation.PostalCode : "(unknown)", LocalizeManager.GetString("Timestamp"), newLocation.Timestamp, LocalizeManager.GetString("Accuracy"), newLocation.Accuracy ); if (!_placedGlobe && !_placedPin) { StartCoroutine(PlaceGlobe()); PlacePin(MLLocationStarterKit.GetWorldCartesianCoords(newLocation.Latitude, newLocation.Longitude, _globe.GetComponent <SphereCollider>().radius)); } } else { if (result.Result == MLResult.Code.LocationNetworkConnection) { locationErrorText = "<color=red>Received network error, please check the network connection and relaunch the application.</color>"; } else { locationErrorText = "<color=red>Failed to retrieve location with result: " + result.Result + "</color>"; } MLLocationStarterKit.Stop(); enabled = false; return; } #endif }
void OnDestroy() { MLLocationStarterKit.Stop(); }