【单目全景相机】Unity3D多平台SDK接入

阅读: 评论:0

【单目全景相机】Unity3D多平台SDK接入

【单目全景相机】Unity3D多平台SDK接入

【单目全景相机】Unity3D多平台SDK接入

作者:瓦哥
2016.09.16
由于本人认知有限,如有错漏,非常欢迎同行指正交流。
QQ:454186694

什么是多平台SDK接入?

Unity3D一般使用C#语言来做开发,Mono做为虚拟机,管理C#或者C/Cpp编写的托管的代码。而对于不同的平台,有时候比较上层的代码执行效率并不是那么高或者有些功能实现就是需要平台支持,需要更底层的代码实现,那么涉及到Native代码的部分,如果C#需要调用,就需要使用到Plugins。这部分代码也叫作非托管代码。

以本项目为例,相机图片、视频的拼接、转码部分功能,就是和特定平台相关的,这部分代码是用C++来实现,然后编译为不同平台动静态库的方式接入,以供上层C#调用:

ipcamera.IOS.a:IOS上,只能编译成.a静态库,不支持热更新技术。放到AssetsPluginsiOS下,没有就新建目录。
ipcamera.bundle:Mac OS X上编译成.bundle包。放到AssetsPlugins下。
ipcamera.dll:Windows上编译成.dll动态库。32位版本放到AssetsPluginsx86下,64位版本放到AssetsPluginsx86_64下。
ipcamera.so:Android上编译成.so动态库。放到AssetsPluginsAndroidlibs下。

还有一种SDK就是C#调用Android.jar包的接入,需要用到Unity3D提供的两个类AndroidJavaClass和AndroidJavaObject。

接下来我自己写了一个demo,分别介绍各种不同SDK Plugins的接入和使用。

Unity3dPluginsDemo

对本篇文章感兴趣的朋友,可以到GitHub上下载到所有源码,包括Unity3D工程,其他动态库、静态库编译建立的工程:
工程源码:Unity3dPluginsDemo
包含有五种接入方式:
a. C++ CLR .dll(支持Windows、MacOSX、Linux);
b. C++ Native .dll(Windows平台);
c. Android jar .jar;
d. IOS .a;
e. MacOSX .bundle。
对应的五个工程如下图所示,用不同的软件打开就可以使用:

测试应用的运行效果如下所示,用U3D打包不同平台的应用版本,然后点击对应平台的button,就会返回相应的值:

C++ CLR接入

VS2015生成UnityPluginsCLR.dll放到AssetsPluginsx86下,如果需要测试64位版本,可以用我上传的工程自己生成一个。
使用的时候首先要using UnityPluginsCLR引用命名空间:

调用的时候按照下面的方式即可:

C++ Native接入

VS2015生成UnityPluginsNative.dll放到AssetsPluginsx86下,同理,如果需要测试64位版本,可以用我上传的工程自己生成一个。
使用的时候首先要DLLImport库文件和申明函数:

调用的时候按照下面的方式即可:

Android jar接入

Android Studio生成UnityPluginsAndroid.jar放到AssetsPluginsAndroid下。
使用的时候需要用到c#提供的AndroidJavaClass和AndroidJavaObject两个类,如下所示:

IOS .a接入

Xcode生成libUnityPluginsIOS.a放到AssetsPluginsIOS下。
使用的时候首先要DLLImport库文件和申明函数:

调用的时候按照下面的方式即可:

Mac OS X .bundle接入

Xcode生成UnityPluginsMacOSX.bundle包放到AssetsPluginsMacOSX下。
使用的时候首先要DLLImport库文件和申明函数:

调用的时候按照下面的方式即可:

细心的读者会发现,这篇教程少了Android Native动态库.so的接入工程和方法,这部分待后续补上。
至此,Unity3D多平台SDK接入部分的介绍完成。

本文发布于:2024-02-02 10:22:06,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170684052743163.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:全景   相机   平台   Unity3D   SDK
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23