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)要保证在环境变量中,运行时搜索依赖的时候才能找得到。

更多unity2018的功能介绍请到paws3d爪爪学院查找。链接https://www.paws3d.com/learn/,也可以加入unity学习讨论群935714213

近期更有资深开发人士直播分享unity开发经验,详情请进入官网或加入QQ群了解

猜你喜欢

转载自blog.csdn.net/qq_35037137/article/details/88826812