Unity 中使用GDAL库

GDAL(Geospatial Data Abstraction Library)是处理地理信息时很常用的一个开源库,功能强大,支持数据格式非常广泛。Unity是个很流行的三维游戏引擎,在地理信息行业做空间数据可视化也是个非常棒的工具。在实际工作中遇到的一个问题就是,怎么在Unity中引入GDAL的库,从而使用GDAL提供的API以及强大的功能。

Unity开发使用的是C#语言,基于开源的.NET框架Mono。Unity中目前能使用的.NET库的版本是2.0/3.5,运行时甚至是2.0。因此,在引入外部插件或者开发动态库的时候,一定要选择Unity能兼容的目标框架,如下图所示。

目标框架的选择.png

查看运行时版本信息的代码是:

Debug.Log(System.Environment.Version);

或者

using System;
using System.Reflection;
Type type = Type.GetType("Mono.Runtime");
if (type != null) {
MethodInfo displayName = type.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static);
if (displayName != null)
Debug.Log(displayName.Invoke(null, null));
}

GDAL本身是C++实现的,经过不同的接口封装,出现了Python版本、C#版本等等。在选择GDAL库的时候,使用别人编译好的版本即可,省的自己再去折腾,但是由于版本问题,只能选择使用MSVC 2008(最高.NET 3.5)所编译的动态库,下载地址在这里:http://www.gisinternals.com/query.html?content=filelist&file=release-1500-x64-gdal-1-11-4-mapserver-6-4-3.zip

使用的时候注意,把GDAL相关的CSharp封装库(Managed DLL)放到Unity工程下面的Asset/Plugins文件夹下面,这样VS2015在启动的时候,会在CSharp工程中引用。

Plugins下面的文件

其他的dll文件(Native DLL)要保证在环境变量中,运行时搜索依赖的时候才能找得到。

要把这个路径写入环境变量中

参考

1.http://answers.unity3d.com/questions/924021/what-is-the-version-of-net-in-unity-5.html
2.https://docs.unity3d.com/Manual/UsingDLL.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 111. [动画系统]如何将其他类型的动画转换成关键帧动画? 动画->点缓存->关键帧 112. [动画]Unit...
    胤醚貔貅阅读 14,553评论 3 88
  • [Unity]技术学习路线图(长期更新) Unity技术面试题 一:什么是协同程序?答:在主线程运行时同时开启另一...
    肖浩呗阅读 23,798评论 15 243
  • 这个是我刚刚整理出的Unity面试题,为了帮助大家面试,同时帮助大家更好地复习Unity知识点,如果大家发现有什么...
    dingz阅读 3,783评论 0 0
  • 中午吃饭被通知要带我去沈阳 慢慢来 接近大家
    Lucky黑girl阅读 1,409评论 0 0
  • 昨日在同觉寺禅堂进行了二七首次小参答疑,及法华经方便品第七讲,收到良好的反馈效果。今日将放送法华经方便品第七讲简单...
    王乓乓阅读 3,538评论 0 0

友情链接更多精彩内容