这是我的第一篇博文,在我刚开始实现本文功能是的,感悟真的是挺深的,为了给大家分享我的探索经验也为了以后自己方便查阅,写下此篇博文
学习一种新的东西,一定要从最简单的开始,把一切需要实现的功能做到最容易实现的地步,比如说引用外部一个方法,就要把这个方法做到最简单,比如说这个方法没有参数只是返回一个int类型的数字,而不是传入一个string或者是一个数组,只有这样才能避免了由于语言之间的差异性而产生的错误,这样在你不了解这个东西的时候,你不知错误到底出现在什么地方,当你把最简单的东西完成了,这时候你可以自己探索更复杂的东西了。
切入正题之前我所说的这些,在我看来也是以后学习少走弯路的实用方法。
我把这篇文章的知识分成几个部分:
一、原理(unity项目中是如何让Android调用C++代码)
unity项目打包成apk后其实就相当于一个Android原生的项目比如说有AndroidManifest.xml、res、lib等文件或文件夹,只是unity把游戏封装在一个继承Activity类的UnityPlayerActivity的类中启动的。Android项目中调用C++代码使用的是so文件的方式,并把so文件放入libs文件夹下面直接就可以在代码中引用。同样我们要在unity项目中植入一个Android的插件,实现的功能就是把插件中的Android项目的Activity同unity中的项目中的Activity合并为一个Activity,实现unity项目中有Android项目中的功能。完成这个以后,在unity项目中就可以引用so文件了
二、制作unity项目中的Android插件
我使用的是eclipse,用as也是相同的原理
1.首先创建一个Android的项目
包名要和unity项目中的包名相同,这样生成的插件才能保证两个activity可以合并在一起,项目的sdk版本最好设置在14以上,否则制作的插件要携带一个兼容包。下一步
到这要把图片中箭头所指的地方勾选上,这样unity才可以引用这个插件,剩下的可以一直next下去完成。
2.添加u