.NET 4.6 不完全支持 Unity?

Posted

技术标签:

【中文标题】.NET 4.6 不完全支持 Unity?【英文标题】:.NET 4.6 don't fully support in Unity? 【发布时间】:2018-01-18 17:46:58 【问题描述】:

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

【问题讨论】:

Why can't I see .Net 4.6 option for API Compatibility Level?的可能重复 【参考方案1】:

“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/

【讨论】:

【参考方案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 和 initializingGPS 之后的示例用法(如果与 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);

【讨论】:

以上是关于.NET 4.6 不完全支持 Unity?的主要内容,如果未能解决你的问题,请参考以下文章

AirConsole 中是不是支持 WebGL 2.0?

3dmax场景导入unity3d中 怎么看不到灯光了?完全没有显示出来呢?该用哪种灯光?

具有完全迁移支持的 .net Active Record ORM

基于hadoop2.7集群的Spark2.0,Sqoop1.4.6,Mahout0.12.2完全分布式安装

Unity 4.6+ 通过脚本创建文本

重置后球轨迹完全相同(Unity)