目的
? ? ? 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包
? ? ? 點擊查看arr和jar包的區別
? ? ? 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