1. 程式人生 > >Eclipse和Unity互動實現微信登入

Eclipse和Unity互動實現微信登入

今天釋出一篇剛剛完成的Eclispe與Unity互動實現微信登入,之前在做準備工作的時候,在網上找了很多例子,發現其中有很多例子是有錯誤的,在這裡我為大家詳細介紹下關於Eclispe與Unity互動實現微信登入,這裡我用得是微信開放平臺的SDK

第一步:配置電腦Java環境變數

第二步:安裝Eclispe,匯入ADT外掛

第三步:匯入微信登入包

1、右鍵Eclispe選擇import,匯入你的工程包


這裡在匯入微信包時請修改好你的包名,後面要用到

2、在匯入微信包以後修改好自己的APPID、APPSECRET


3、在微信包中有一個WXEntryActivity的檔案,一定要確保它是在你的包名下面的wxapi檔案下面


4、在以上步驟都確認修改好以後,就可以編寫你的JAVA程式碼了

因為工程專案需要使用到Unity提供的介面,所以需要先把Unity的classes.jar檔案匯入到你的工程下面

classes.jar檔案路徑是Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Classes

找到classes.jar檔案以後複製到你的工程下面libs資料夾下面,然後重新整理整個工程,這樣你的classes.jar檔案就會自動匯入到Android Private Libraries裡。


先把你需要用的java檔案,它們的包名修改成你自己的


AppsActivity.Java


AppsActivity為主Activity,所以它需要繼承自UnityPlayerActivity,這個UnityPlayerActivity就是我上面匯入的classes.jar包裡面提供的介面類,Unity程式啟動時就會呼叫這個Activity,設定主的Activity是要在AndroidMainfest.xml裡配置的。

這裡的openWXLogin方法就是Unity呼叫的方法,它提供了name引數,這個name引數接下來會講它的使用。

5、接下來就要配置你的AndroidMainfest.xml配置檔案了

不多說附上程式碼




圈出來的地方就是設定AppsActivity.Java為主Activity的程式碼,注意的是這裡android:name="com.KOCO.DianleNN.AppsActivity"

,這個AppsActivity前面的包名路徑一定要寫對,不然會出錯。

6、配置完AndroidMainfest.xml檔案後就開始生成匯入到Unity裡面的jar包了

這裡在生成jar包的時候有幾點需要注意一下(說出來都是淚啊。。。。。。)

(1)設定好生成jar包的路徑

生成jar包的路徑一般為E:\你的工程專案名\bin\classes


確認好路徑,使用win+R開啟控制檯,輸入cmd,cd到你的路徑例如(cd E:\微信登陸_例子\WXApp\bin\classes),輸入jar -cvf

calss.jar*命令,這條命令是把當前的class檔案全部打包成jar包(如果看不到bin裡面的檔案,請開啟Java視圖裡的Navigator




它就會自動生成一個class.jar的包


在上訴步驟中有一點尤為重要,就是當你在生成jar包之前請一定要確認你要生成的路徑下有沒有R開頭的class檔案

例如這些R檔案,這些R開頭的檔案可能會導致你Unity發安卓包失敗,因為在Unity本身自帶的classer.jar包裡面是有R檔案的,它會和你的這些R檔案衝突。

再確認上訴步驟沒有錯誤以後,恭喜你,你可以安心把jar包放到你的Unity裡面了。

第四部:jar包匯入到Unity裡面,並且和Unity進行互動

1、在Unity裡的Assets檔案裡新建一個Plugins檔案,在Plugins檔案下面再新建一個Android檔案(注意Assets-Plugins-Android,這個路徑一定要是對的),再然後就是把你的Eclispe專案裡的res、AndroidMainfest.xml、libs檔案複製到該路徑下(複製之前libs檔案裡的classes.jar要刪掉),最後在該路徑下再新建一個bin檔案,把你生成的jar包放到裡面去


2、新建一個Test.cs的方法,這個方法一定要綁在Camera上,它用來通知介面開啟Activity,接下來就要開始編寫程式碼了,(*請看下圖)

Test.cs


先得到一個AndroidJavaClass,然後得到AndroidJavaObject就是當前Activity的物件,也就是上面的主Activity(注意com.unity3d.player.UnityPlayer和currentActivity這兩個千萬不要改,因為它已經指向了繼承自UnityPlayerActivity的主Activity(AppsActvity),接下來就是通過jo.Call來呼叫Eclipse裡面的Android方法,jo.Call括號裡的引數,第一個代表你要呼叫的Eclispe的主Activity裡面的方法,第二個引數就是Eclispe傳給Unity的引數。

3、這樣一來通過Eclispe和Unity互動實現微信登入的基本功能已經實現了,如果你想再Unity裡面的按鈕上呼叫Eclipse的方法,只需要在場景裡面新增一個按鈕,在按鈕的onclick事件裡新增上面這個方法就好

如果您覺得這篇文章不錯,記得走前頂一下哦