Unity 与 Android通信交互

在网上找了一些关于这一方面的帖子,试了很多,出现有问题的,可能是版本的原因吧,在这里我写这篇文章是为了验证自己的理解和向大家交流学习,希望对大家有所帮助。

一、首先新建android工程 

Unity 与 Android通信交互

2,给项目取名 
Unity 与 Android通信交互

3,单击Next后

Unity 与 Android通信交互

4,单击Next后

Unity 与 Android通信交互

5,单击Next后

Unity 与 Android通信交互

6,单击Next后

Unity 与 Android通信交互
二、创建工程以后,我们需要把unity的工具包引用过来,在eclipes右键工程目录->build path->Add 
External Archives选项。 

Unity 与 Android通信交互

由于可能版本不一样,我的Unity工具包路径在 
C:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes目录下的classes.jar文件。 最终是这样

Unity 与 Android通信交互

完成后,打开MainActivity类,在这里我们需要导入添加一些命名空间,才可以实现相应的功能,
把该类默认继承的Activity改成继承UnityPlayerActivity类, 然后把不要的代码去掉,
Unity 与 Android通信交互
最后保存,eclips会自动生成编译好的jar包,在bin目录下面,这就是为什么上面需要勾选的原因。

Unity 与 Android通信交互

三、下面开始新建一个Unity3d工程,新建的过程这里就不介绍了。 
在Assets目录下面新建一个Plugins文件夹,在Plugins目录下面新建一个Android文件夹,
然后要拷贝两个文件过来这里, 
  1. 一个是刚刚的那个jar包。在eclipes的bin目录下面 
  2. 就是在你的unity3d安装目录里面的AndroidManifest.xml文件,路径是: x:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\
  3. 最后现在我们要对AndroidManifest.xml进行简单的配置
Unity 与 Android通信交互
Unity 与 Android通信交互
第一处要改成你自己的项目包名
Unity 与 Android通信交互
第二处就是填写你jar包的入口类。就是MainActivity
最后,还需要注意一点的是,我们还有一个地方要配置,就是android平台界面的配置,看下图 
Unity 与 Android通信交互
最后就是写代码啦,在unity中调用Android的方法

Unity 与 Android通信交互
那么既然unity可以调用Android的方法,那么Android中是否也可以调用unity中的方法那,当然可以啦,可以通过

Unity 与 Android通信交互