1

我将项目中的 .NET 版本更改为 4.6,但我仍然无法使用GeoCoordinate类。我是不是做错了什么或者 Unity 不完全支持 .NET 4.6?

4

2 回答 2

2

Unity 可能支持所有 C# 6 功能。它不支持所有.NET 4.6 API,因为它使用 Mono。即使使用 .NET 3.5,Unity 也有许多其他 API 不支持,因为 Mono 不支持它。

这根本应该是一个问题。您可以从github获取 GeoCoordinate API 副本。所有你需要的是GeoCoordinate.csGeoPosition.cs文件。

函数名称和其他所有内容都可以与 Microsoft 的System.Device.Location.GeoCoordinate.

导入 Unity 和初始化GPS 后的示例用法(如果使用 Unity 的 GPS API):

LocationInfo gpsInfo = Input.location.lastData;
LocationInfo gpsInfo2 = Input.location.lastData;


GeoCoordinate pin1 = new GeoCoordinate(gpsInfo.latitude, gpsInfo.longitude);
GeoCoordinate pin2 = new GeoCoordinate(gpsInfo2.latitude, gpsInfo2.longitude);

double distanceBetween = pin1.GetDistanceTo(pin2);
于 2017-08-10T17:49:49.870 回答
0

“IL2CPP完全支持新的 .NET 4.6 API,因此您仍然可以获得使用 C# 编写的好处和原生 C++ 的性能。如果您发现任何问题,请跳到论坛。”

https://blogs.unity3d.com/2017/07/11/introducing-unity-2017/

这是实验性功能,我认为目前还没有很多人在使用它,因此您可能会在专用论坛上获得更多答案:

https://forum.unity3d.com/forums/experimental-scripting-previews.107/

于 2017-08-10T14:32:36.640 回答