我正在开发一个Unity3d for Android项目。使用Unity的文档:
http://unity3d.com/support/documentation/ScriptReference/Input-location.html
我应该可以使用Input.location
来访问GPS位置数据。但相反,我得到一个错误,基本上告诉我Input.location不是Unity的一部分。
Assets / Scripts / Prototype1.js(27,29):BCE0019:'location'不是 'UnityEngine.Input'的成员。
我检查了更新,它告诉我系统是完全最新的。我正在运行3.4.2f3版本
文档是否已过时?是否有对LocationService的不同引用?如何获取位置数据?
答案 0 :(得分:2)
unity3d.com上的文件包含最新版Unity3D 3.5的文档。如果您在本地文件系统中查看文档,则找不到Input.location
。好像他们已经改变了Unity3D 3.5中的界面。
我到目前为止还没有使用GPS,也许这个帖子和提供的链接可以为此提供一些启示:
答案 1 :(得分:1)
我找到了基于iPhoneSettings的旧代码的文档。这是我现在使用的代码,它不完整(不响应位置服务的时间和其他如此全面的行为),但演示代码。
function Start () {
locationStatus = LocationServiceStatus.Stopped;
StartCoroutine(startLocationService());
}
function Update () {
if(locationStatus == LocationServiceStatus.Running)
{
/*
lat = Input.location.latitude;
lon = Input.location.longitude;
alt = Input.location.altitude;
*/
lat = iPhoneInput.lastLocation.latitude;
lon = iPhoneInput.lastLocation.longitude;
alt = iPhoneInput.lastLocation.altitude;
}
}
function startLocationService()
{
//Input.location.Start(accuracy, distance);
iPhoneSettings.StartLocationServiceUpdates(accuracy, distance);
//while(Input.location.status == LocationServiceStatus.Initializing && maxWait > 0) {
while(iPhoneSettings.locationServiceStatus == LocationServiceStatus.Initializing && maxWait > 0)
{
yield WaitForSeconds(1);
maxWait--;
}
//locationStatus = Input.location.status;
locationStatus = iPhoneSettings.locationServiceStatus;
}