最近在研究一些构建依赖相关的,特别是Unity在不同平台上使用第三方类库时候的问题。简单查了一下资料,其实不难理解,这里只是简单的记录一下,弄明白一个简单的道理就行了。
为什么有的第三方库(DoTween),NewtonSoft等的dll库,拖进来就能用。而且也不用管不同平台的,而有的就不行。
原因是,dll其实分为两种,托管和非托管的。
在Unity里,点击一个DLL是可以看到类型的
比如XLua,类型是Native
比如DoTween,类型是.Net
实际上是不同的,Native类型的DLL多由C、C++等语言编写,是针对目标机器的,对不同的操作系统来说,需要不同的编译过程
而.Net类型是依赖CLR的,运行在虚拟机上,所以可以天然的跨平台
另外就是,在使用上,基于.Net的DLL,可以直接使用using语句以后直接使用
而基于Native的就需要DLLImport去使用
如果自己要使用第三方或者开源框架时也可以注意这一点。如果源代码是C#的,可以直接构建DLL或者把C#导入unity中。直接参与编译,如果是C++等第三方的,就需要为不同的平台编译对应的库了。
一般windows上就是dll,android上是.so文件,苹果机器上是.a
就这么简单的记录一下吧。确实只是一个很小的知识点。毕竟怎么构建这些库才是大问题,还在学习中
翻译
搜索
复制