二. Unity开发微信登陆2_Unity与Android的交互
目的
1. 为什么要写“Unity开发微信登陆”?
unity如果想使用微信登陆一般有两种方法,第一种接入第三方SDK比如ShareSDK,但是我使用后只能说一句垃圾,问题很多,每一次都要和客服沟通后一步一步解决,到了最后可能依然出现问题,比如拿不到回调或者拿不到用户信息。无奈的我只能走第二种方法,通过微信SDK,在原生平台上开发,到处包给unity调用,完成微信登陆授权开发。
2. 为什么要写“Unity与Android交互”?
通过上 面可以知道,想通过第二种方法完成微信登陆,必须在原生平台中开发(本文是AndroidStudio),那么必须涉及到Unity调用Android中的某些方法方法,而本文讲述一个Unity调用Android的实例来完成Unity对Android方法的调用,为下一篇,调用微信方法做铺垫。
开发工具、环境
Unity5.5Pro、Android Studio2.3.3、jdk1.8。Mac10.12.5上开发。
Mac如何安装Unity:点击查看
Mac安装AndroidStudio完全是傻瓜式的。
Mac上在官网下载jdk1.8,安装后无需配置环境变量,直接java -version就有了。。爽~~
先在AndroidStudio中工作
1. 新建工程
只需要注意,AndroidStudio中新建项目的包名和Unity发布安卓时候设置的包名要一致。
2.倒入jar包
将Unity路径下的Classes.jar倒入到AS的lib目录下,然后右键将jar包"Add as library"。



3. 编写MainActivity代码

4. 修改AndroidManifest.xml

5. 修改build.gradle

6.删除部分文件

7. 修改

8. 生产arr包
Build->Build APK
成功会在app\build\outputs\aar目录下出现一个app-debug.aar包
然后用 解压软件打开这个包,删掉libs下的classes.jar(没错,就是之前重unity中拷过来的)
因为unity打包时会重新把自带的classes.jar打进去,如果不删掉它会打包报错,冲突
然后这就是最终需要的aar包
把arr和AndroidManifest.xml都放在一个地方等待在unity中使用


Unity中调用
Unity新建一个工程,设置jdk,安卓的SDK。
注意了!我用的是截止文章最新版AS,你们用AS自带的SDK可能出现不能打包的情况,这是因为最新SDK中的tools是unity打包用不了的,我自己组装了一个,放在云盘这里了:
链接:http://pan.baidu.com/s/1qY2TEoO 密码:dzds

然后在Assets目录下新建我们需要的目录,Assets\Plugins\Android,并把我们的ass包和AndroidManifest.xml放到里面。

我们编写一个类挂在摄像机上,随机生成两个数,点击点击事件,然后调用安卓中的方法相加。

点击事件代码如下:

挂载然后设置点击事件后,打包,运行成功:

依然存在一个问题,我们再打开应用的时候短暂的瞬间,可能会出现这样的现象:

解决方法:
下面这个代码的意思是:透明背景并无标题,全屏

xml倒入后,打包,没有黑屏现象了。美滋滋。
Unity和AS项目代码已经上传百度云: 链接:http://pan.baidu.com/s/1dFAH8AX 密码:4805