2016-08-01 33 views
0

Ich verwende Standortdienste in einem Unity 3D-Spiel. Ich verwende dieses (leicht modifizierte) Skript, das ich in der Unity-Dokumentation nur zu Testzwecken gefunden habe. Hier ist das Skript:Unity darf den Standort nicht verwenden - Windows 10

using UnityEngine; 
using System.Collections; 

public class TestLocationService : MonoBehaviour 
{ 
    IEnumerator Start() 
    { 
     // First, check if user has location service enabled 
     if (!Input.location.isEnabledByUser) 
      print("no"); 
      yield break; 

      // Start service before querying location 
      Input.location.Start(); 

      // Wait until service initializes 
      int maxWait = 20; 
     while (Input.location.status == LocationServiceStatus.Initializing  && maxWait > 0) 
    { 
     yield return new WaitForSeconds(1); 
     maxWait--; 
    } 

    // Service didn't initialize in 20 seconds 
    if (maxWait < 1) 
    { 
     print("Timed out"); 
     yield break; 
    } 

    // Connection has failed 
    if (Input.location.status == LocationServiceStatus.Failed) 
    { 
     print("Unable to determine device location"); 
     yield break; 
    } 
    else 
    { 
     // Access granted and location value could be retrieved 
     print("Location: " + Input.location.lastData.latitude + " " + Input.location.lastData.longitude + " " + Input.location.lastData.altitude + " " + Input.location.lastData.horizontalAccuracy + " " + Input.location.lastData.timestamp); 
    } 

    // Stop service if there is no need to query location updates continuously 
    Input.location.Stop(); 
} 

}

Als ich das Skript ausführen, es soll meine Lage drucken. Allerdings denkt es, dass Standortdienste nicht aktiviert sind (ich verwende Windows 10) und druckt nur "Nein" vor dem Anhalten aus. In meinen Standorteinstellungen ist der Standort aktiviert.

enter image description here

Warum Unity ist nicht erlaubt, meine Lage zu benutzen?

Antwort

0

Sie müssen Unity die Erlaubnis geben, die Standortdienste auch zu verwenden. Wenn Sie auf dem Screenshot, den Sie gepostet haben, nach unten scrollen, müssen Sie auch den Schalter für Unity umschalten.

Wenn das nicht funktioniert, können Sie versuchen, eine Art von Geo-Sensor zu installieren und sehen, ob es einen Unterschied macht.

Basierend auf http://answers.unity3d.com/questions/1219218/windows-10-using-location-with-unity-through-pc-no.html der api Input.location.isEnabledByUser soll nur für (Handheld-Geräte nur)

+0

Es ist nicht ein Kippschalter für die Einheit. Gibt es eine Einstellung, die ich in Unity aktivieren muss? –

+0

können Sie versuchen http://www.tenforums.com/attachments/driver-hardware/50767d1438836176t-find-my-device-wifi-feature-set-up-page-says-off-28806d1438836176-location-service-turn- off-windows-10-location_on_for_device-1.png – Aleks