Unity中使用C#调用Android接口
1.首先打开Eclipse,新建一个项目,项目名称为Timee(由于为了演示方便,Workspace已经有一个项目叫Timee,所以这里会报错,请无视):
![](https://img.haomeiwen.com/i3947109/72ef1151214ec0c8.png)
注意:这里的Package Name很重要,之后在Unity打包的时候,写的包名不能和它一样,不然会报错(血的教训)。
![](https://img.haomeiwen.com/i3947109/b9d35c6f604c1196.png)
比如像我这样在Unity端的包名后面加一个“2”,我这里API选用了API 14,即Android 4.0
另外注意:创建Android项目的时候尽量用Android 4.0及以上版本的SDK,要不然Unity打包的时候它会报各种各样的“can not find Android theme"的错误。
2.MainActivity的代码,继承自UnityPlayerActivity(必须导入Unity提供的classes.jar包,在网上可以下载,在Unity的安装目录也可以找到)。
![](https://img.haomeiwen.com/i3947109/4b06455bee777e4f.png)
由于程序一启动,首先创建MainActivity的实例,并且回调onCreate()等方法。我们的Unity的主界面是靠scene去渲染,所以删除MainActivity中setContentView()。(以下代码已经删除该方法)
![](https://img.haomeiwen.com/i3947109/c15e7bfc989824fb.png)
3.新建一个SubActivity用于跳转功能,其中对应的layout文件没什么要求,我这里就是初始的“Hello World”。
![](https://img.haomeiwen.com/i3947109/2fe04ecae02e35a2.png)
4.将这个Android项目作为Library(项目名称点右键进入Properties选项)
![](https://img.haomeiwen.com/i3947109/144e2797d23e291b.png)
5.关掉Project->Build Automatically选项,然后Clean一下项目,再点击Build Project重新Build一下。
![](https://img.haomeiwen.com/i3947109/81d5fa323d88db24.png)
- 打包我们Android项目,按道理来说,打包的东西只需要class就可以,但是我们的项目中除了自己的class还有自动生成的
gen目录下面的东西,还有其他资源,为了不遗漏,干脆全部打包。res AndroidManifest.xml也被打包,这些只不过是垃圾而已。
![](https://img.haomeiwen.com/i3947109/a913492197e392ef.png)
7.将导出的jar包导入Unity的bin文件夹下,如图(名字随意,我改成了class.jar):
![](https://img.haomeiwen.com/i3947109/3094fe8680f945c5.png)
8.将Eclipse中Android项目的AndroidManifest.xml文件照图中修改
![](https://img.haomeiwen.com/i3947109/e376150f841d33a6.png)
并且拷贝到Unity中如下图一样的位置:
![](https://img.haomeiwen.com/i3947109/dda2aef719aaf0c5.png)
9.Eclipse中其余的文件夹照上图中的位置搬运,共需搬运assets,libs,res三个文件夹(如下图)
![](https://img.haomeiwen.com/i3947109/255d4256868c7005.png)
10.在Unity中创建一个脚本,名字随意,我的叫AndroidAPI,用于调用转移到Unity的jar包里面的方法
![](https://img.haomeiwen.com/i3947109/2c175fe552e2c8e0.png)
挂载在一个游戏物体上,例如Main Camera:
![](https://img.haomeiwen.com/i3947109/6eb01a24b666ce64.png)
11.编辑这个脚本:
![](https://img.haomeiwen.com/i3947109/60050beb8729639b.png)
12.以上内容必须在真机中测试,所以接下来是打包,打包之前进行一些Player Setting的设置:
![](https://img.haomeiwen.com/i3947109/0d10dea6fd550f19.png)
12.导出为Android APK:
![](https://img.haomeiwen.com/i3947109/3f8d065963df1707.png)
PS:如果出现以下错误
![](https://img.haomeiwen.com/i3947109/b6ce4834236c757b.png)
解决方法:
找到sdk文件夹:把build-tools里大于23.0.3的全移除掉,像24.0.0, 25.0.2...
![](https://img.haomeiwen.com/i3947109/a6578c62f01c02ac.png)
13.安装到手机,就可以运行了