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

news/2024/11/15 5:42:33/

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

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

什么是多平台SDK接入?

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

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

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

还有一种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。
对应的五个工程如下图所示,用不同的软件打开就可以使用:
image

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

C++ CLR接入

VS2015生成UnityPluginsCLR.dll放到Assets\Plugins\x86下,如果需要测试64位版本,可以用我上传的工程自己生成一个。
使用的时候首先要using UnityPluginsCLR引用命名空间:
image
调用的时候按照下面的方式即可:
image

C++ Native接入

VS2015生成UnityPluginsNative.dll放到Assets\Plugins\x86下,同理,如果需要测试64位版本,可以用我上传的工程自己生成一个。
使用的时候首先要DLLImport库文件和申明函数:
image
调用的时候按照下面的方式即可:
image

Android jar接入

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

IOS .a接入

Xcode生成libUnityPluginsIOS.a放到Assets\Plugins\IOS下。
使用的时候首先要DLLImport库文件和申明函数:
image
调用的时候按照下面的方式即可:
image

Mac OS X .bundle接入

Xcode生成UnityPluginsMacOSX.bundle包放到Assets\Plugins\MacOSX下。
使用的时候首先要DLLImport库文件和申明函数:
image
调用的时候按照下面的方式即可:
image

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


http://www.ppmy.cn/news/379539.html

相关文章

百度VR智拍再升级,3D环物拍摄一站生成

随着图像技术的升级,传统的静态图文因为不够立体、过于单调,很难吸引用户的关注,而电商平台的众多卖家不再满足于平面的需求。 如今,日趋流行的 3D 环物图像足够生动,又能抓住眼球,像这样成本高、难度大的技…

视频制作的入门知识

做视频是一个非常费时间和精力的事情,拍摄很麻烦,此外剪辑不仅要熟悉工具,还要熟悉电影语言和镜头语法。 本文就根据《剪辑的语法》和网络资源对视频剪辑进行一个简单的叙述笔记,同时给出通常一个视频的制作流程。 一、剪辑基础 …

3D重建作业-软件安装(1)

Bundler可以得到较为稀疏的点云(point clouds)数据。如果需要得到更密集的点,MVPS2。一种比较常见的途径是使用Bundler来得到相机参数,然后使用Bundle2PMVS程序,将生成结果转换为PMVS2的输入,然后使用PMVS2…

单反DCP文件制作教程 电影色调3Dlut快速实现

单反DCP文件制作教程 dcptool下载地址:https://sourceforge.net/projects/dcptool/ 1、解压 2、快捷键win r启动命令行 3、cd /d E:\TDDownload\dcpTool_v1.7.0\Windows 后面目录更换为你自己实际的目录 4、随便选择一个其他相机的dcp文件,本例以Nikon…

相机标定与3D重建(opencv-python实现)

文章目录 1. 相机标定的四个坐标系以及转换关系1.1 四个坐标系介绍1.1.1 世界坐标系(X~w~, Y~w~, Z~w~)1.1.2 摄像机坐标系(X~c~, Y~c~, Z~c~)1.1.3 图像坐标系(x,y)1.1.4 像素坐标系(u,v) 1.2 简单知识介绍1.3 图像坐标系与像素坐标系的关系1.4 世界坐标系与摄像机坐标系的关系…

【阅读整理】Implementation of an algorithm for automated phenotyping through plant 3D-modeling

目录 主体篇幅目录: Abstract Conclusion 实验方案设计(2.1 Experimental design and data collection) 三维重建&处理(2.2 Three-dimensional reconstruction and processing) 三维模型分割(2.3 3D-mo…

2021年全球与中国3D光学计量行业市场规模及发展前景分析

2021年全球与中国3D光学计量行业市场规模及发展前景分析 本报告研究全球与中国市场3D光学计量的发展现状及未来发展趋势,分别从生产和消费的角度分析3D光学计量的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、…

看一图而思全云

>> 前言 << 我在看财经十一人吴俊宇老师撰写的《阿里云计划在12月内独立上市》时&#xff0c;看到了一张全球及中国IT支出结构图。就是下图这张图&#xff0c;盯着这张图&#xff0c;我看到了星辰大海&#xff0c;也想到了广阔天地大有可为。 但只看这个图不够过瘾…