Unity不允许使用位置 - Windows 10

时间:2016-08-01 16:50:47

标签: unity3d location windows-10 location-services

我在Unity 3D游戏中使用位置服务。我正在使用我在Unity文档中找到的这个(略微修改过的)脚本仅用于测试目的。这是脚本:

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();
}

}

当我运行脚本时,它应该打印我的位置。但是,它认为位置服务未启用(我使用的是Windows 10)并且只打印&#34; no&#34;在停止之前。在我的位置设置中,我启用了位置。

enter image description here

为什么Unity不允许使用我的位置?

2 个答案:

答案 0 :(得分:1)

Unity中的位置访问仅适用于手持设备(即手机和平板电脑)。您无法在计算机上使用它。

Unity Docs:https://docs.unity3d.com/ScriptReference/Input-location.html

答案 1 :(得分:0)

您必须授予Unity使用位置服务的权限。 如果向下滚动您发布的屏幕截图,则还必须切换Unity的开关。

如果这不起作用,您可能想尝试安装某种地理传感器,看看它是否有所不同。

根据http://answers.unity3d.com/questions/1219218/windows-10-using-location-with-unity-through-pc-no.html,api Input.location.isEnabledByUser 应该仅适用于(仅限手持设备)