.NET 4.6不完全支持Unity?

时间:2017-08-10 12:56:15

标签: .net unity3d version-compatibility

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

2 个答案:

答案 0 :(得分: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时和initializing 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);

答案 1 :(得分: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/