經常地,我們需要使用unity來調用安卓的一些原生功能,比如toast的啊,或者其他的一些功能,這些在網上也可以找到許多。
但是。往往會有一些特殊的需求需要在安卓中調用unity。具體是什么需求會用到呢?能找到這里的各位心里肯定有自己的答案。目前網絡上大多的資源都是使用的eclipse來調用。但是如今AS已經慢慢成為主流。新版本的unity都已經支持將工程發布為AS支持的Gradle。
本文就主要講解了如何使用AS調用unity工程。
1.unity的工程包名以及所支持的API版本需要和安卓程序相同(不要問我不相同可不可以,可以。但是誰知道會遇到什么坑。)
2.其次,要設置包的keystore。因為只有設置了keystore才可以發出工程文件而不是apk文件。
3.這樣就可以發布成AS可以使用的工程文件了
找到你發布出的工程文件,unity這部分就算是完成了。
AS
1.進入安卓工程中
通過導入模塊的方式把unity打包出的安卓工程包導入進來。讓其作為一個模塊來調用。
可以看一下setting.gradle中的include是否包含了你的工程,當然正常情況下肯定是包含了。
這樣非常方便管理,而且對先前的安卓工程幾乎沒什么影響。其次我們要修改unity工程中的一些配置。
首先是build.gradle中的。需要修改的我已經用紅線和圈標出來。
1,首先就是將我們unity的工程修改為library。因為我們的包只是作為附加模塊。
2.這個時候如果你build你會發現他出錯了。因為我們將其改為library后。defaulyconfig中的appid已經不需要了,所以要將他刪掉。圖中在花圈處已經刪掉。
其次,需要修改的是unity打出來包中的AndroidManifest.xml。安卓在其編譯時會將所有的模塊中的Android manifest合并起來,所以我們需要修改的只是多個manifest中相同的地方,因為不同的地方合并后不會沖突。
如圖所示,我們注釋掉了其中intent-filter中的Main和Launcher這兩行,這兩行的意思是將該activity作為主頁和啟動頁,很顯然,我們需要將安卓的頁面作為主頁和啟動頁,所以這兩行需要刪掉。如果你unity工程中用到了很多第三方的插件,那么你就要注意一下,看一下是不是所有的標簽都正確沒有錯誤,我這邊可是遇到過,因為使用插件過老,標簽過時了的情況。
配置到此也就完了。
接下來就是代碼調用了。
簡單的調用如圖所示。
通過在安卓中點擊按鈕然后跳轉的unity的場景。親測可用。
在此要特別感謝我的老友thorn。在安卓這塊給了我很多幫助。
如果你有什么意見或者建議千萬不要吝嗇評論噢。