Unity 不允许使用位置 - Windows 10
Unity isn't allowed to use location - Windows 10
我在 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)并且在停止之前只打印 "no"。在我的位置设置中,我启用了位置。
为什么不允许 Unity 使用我的位置?
您还必须授予 Unity 使用定位服务的权限。
如果您在发布的屏幕截图上向下滚动,您还必须切换 Unity 的开关。
如果这不起作用,您可能想尝试安装某种地理传感器,看看它是否有任何不同。
基于 http://answers.unity3d.com/questions/1219218/windows-10-using-location-with-unity-through-pc-no.html,api Input.location.isEnabledByUser 应该仅适用于 (仅限手持设备)
Unity 中的位置访问仅适用于手持设备(即手机和平板电脑)。您不能在计算机上使用它。
Unity 文档:https://docs.unity3d.com/ScriptReference/Input-location.html
我在 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)并且在停止之前只打印 "no"。在我的位置设置中,我启用了位置。
为什么不允许 Unity 使用我的位置?
您还必须授予 Unity 使用定位服务的权限。 如果您在发布的屏幕截图上向下滚动,您还必须切换 Unity 的开关。
如果这不起作用,您可能想尝试安装某种地理传感器,看看它是否有任何不同。
基于 http://answers.unity3d.com/questions/1219218/windows-10-using-location-with-unity-through-pc-no.html,api Input.location.isEnabledByUser 应该仅适用于 (仅限手持设备)
Unity 中的位置访问仅适用于手持设备(即手机和平板电脑)。您不能在计算机上使用它。
Unity 文档:https://docs.unity3d.com/ScriptReference/Input-location.html